Docker 学习笔记
作者: dkvirus 发表于: 2018-06-25 15:41:00 最近更新: 2018-08-02 00:02:53

一、概述

就是一虚拟机。有几个概念加以区分:

  • 镜像(Image):传统虚拟机 Vmware 要装个系统,需要先下载镜像文件,比如 window7.iso、window10.iso;这个镜像文件在 Docker 中叫做 Image;
  • 容器(Container):在 Vmware 成功装好 win7,这个装好的 win7 系统在 Docker 中就叫做一个容器。一个 window7.iso 可以安装若干个 win7 系统,同样的,一个 Image 也可以生成若干个容器;
  • 仓库(Repository):官方提供仓库,存放很多别人制作好的 Image,这点和 Npm 生态很像,Npm 官方仓库也有很多 npm 包,想用啥 install 即可拉到本地。

二、Centos 安装 Docker

《CentOS 上安装 Docker 官方教程》

Docker CE(Docker Community Edition) 社区版本,免费的;

Docker EE(Enterprise Edition)企业版本,部分功能收费。

Step1:安装 docker 仓库

安装必要的包, yum-utils 提供 yum-config-manager 功能。

1
# yum install -y yum-utils device-mapper-persistent-data lvm2

使用 yum-config-manager 安装 docker 稳定仓库,后面使用 yum 安装 docker 就是从这个仓库下载的。

1
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Step2:安装 docker-ce

1
# yum install -y docker-ce

Step3:查看是否安装成功

1
# docker version

显示版本号说明安装成功,我安装的是 18.05.0-ce 版本。

Step4:启动 docker

默认安装好的 docker 是没有启动的,需要手动启动。

1
# systemctl start docker

三、配置 Docker 国内仓库镜像

创建文件 /etc/docker/daemon.json

1
2
3
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

重新加载 docker 配置

1
# systemctl reload docker

四、镜像(Image)API

命令 含义
build Build an image from a Dockerfile
history Show the history of an image
import Import the contents from a tarball to create a filesystem image
inspect Display detailed information on one or more images
load Load an image from a tar archive or STDIN
ls List images
prune Remove unused images
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rm Remove one or more images
save Save one or more images to a tar archive (streamed to STDOUT by default)
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

五、容器(Container)API

命令 含义
attach Attach local standard input, output, and error streams to a running container
commit Create a new image from a container’s changes
cp 将容器内文件复制到外层系统中 docker container cp mynginx:/etc/nginx
create Create a new container
diff Inspect changes to files or directories on a container’s filesystem
exec 进入正在运行的容器执行命令
export Export a container’s filesystem as a tar archive
inspect Display detailed information on one or more containers
kill 干掉运行的容器,但不会删除容器文件,参数 [containerId]
stop kill是强制关闭运行中的容器,stop是先关闭容器内运行的程序再关闭容器
rm 干掉运行的容器并删除容器文件,参数 [containerId]
logs 查看容器输入日志,用 run -it 也能查看日志
ls 列举运行中的容器,加 -all 列举所有容器,包括停止运行的容器
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
prune Remove all stopped containers
rename Rename a container
restart Restart one or more containers
run 新建容器,每执行一次该命令,就会创建一个新的容器
start 运行已经生成的容器,避免重复创建容器
stats Display a live stream of container(s) resource usage statistics
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
wait Block until one or more containers stop, then print their exit codes

Ctrl + d 退出容器。

run 命令详解

1
# docker container run -d --rm -p 8000:3000 -it ubuntu bash
参数 含义
--rm 容器终止运行后自动删除容器文件
--name myos 容器别名
--volume /home/dkvirus/nginx/html:/usr/share/nginx/html 将容器内 html 映射到外部 html 目录下
-p 80:3000 容器的 3000 端口映射到本机的 80 端口
it 容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器
ubuntu image 文件的名字(如果有标签,还需要提供标签,默认是 latest 标签)
bash 容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell
-d 在后台运行
首页
友链
归档
dkvirus
动态
RSS