一、docker核心组件
docker客户端和服务端
docker镜像
registry
docker容器
二、关键概念
docker以镜像为基础,在镜像的基础上创建、运行容器,可以简单的理解为容器是镜像运行时的表现。
三、docker基本命令
- 容器相关
1、docker run --name container_name -i -t ubuntu /bin/bash (创建一个交互式容器)
docker run 命令指的是运行某一个镜像,这里指ubuntu镜像
--name 参数用于指定即将创建运行的容器的名称(唯一)
-i 参数指的是以镜像运行的容器中的标准输入是打开的
-t 参数指的是为创建的容器分配tty终端
/bin/bash 命令指的是容器创建完毕启动的命令
2、docker start containerId/containerName
重新启动容器(docker重启时,会沿用docker run命令时指定的参数来运行)
3、docker stop containerId/containerName
停止容器
4、docker run --name daemon_dave -d ubuntu(守护式容器)
-d 参数说明该容器在后台运行
5、docker logs [options] containerId/containerName
docker logs containerId/containerName:输出此容器的log
-f 参数 动态打印容器运行时的log日志
-tf 参数 给日志添加时间
--tail number 参数用于获取日志的最后几行内容
6、docker top containerId/containerName
查看容器内部运行的进程
7、docker exec [options] containerId/containerName [shell]
docker exec:在容器内部额外启动新进程
-d: 后台进程
-i -t:交互式进程
8、docker run --restart=[param] ...
--restart=always:无论容器退出码是多少,都自动重启容器
--restart=on-failure:5:当退出码是非0时,自动重启5次
9、docker ps
docker ps 命令显示当前正在运行的容器
docker ps -a 显示所有容器
docker ps -l 显示最新创建的一个容器
docker ps -l -q 显示最新创建的一个容器的id
10、docker run -p/-P
-p:
8080:80 将容器内的80端口绑定到了本地宿主机的8080端口
127.0.0.1:8080:80 将容器内的80端口绑定到了本地宿主机的127.0.0.1这个IP的8080端口
127.0.0.1::80 将容器内的80端口绑定到了本地宿主机的127.0.0.1这个IP的一个随机端口
-P:
将容器内的80端口对本地宿主机公开,并且绑定到宿主机的一个随机端口上
11、docker inspect containerId/containerName
查看容器详细信息
12、docker port containerId/containerName
查看容器端口映射情况
- 镜像相关
1、docker images
docker images:查找docker宿主机所有的镜像,后面加镜像名可查看指定镜像的信息
2、docker search XXX
用于查看XXX相关的镜像
镜像一般存储在镜像仓库中(用户仓库:用户名/仓库名),并打上标签
3、docker commit
docker commit:构建镜像
docker commit -m "A new custom image" -a "James Turnbull" [容器Id] [仓库名/镜像名:tag]
-m:提交信息
-a:提交人信息
4、基于dockerfile构建镜像
docker build -t="仓库名/镜像名:tag" .
.:代表从当前目录下查找Dockerfile,也可以指定git仓库
5、dockerfile命令
CMD:
指定容器要启动时要运行的命令,一个dockerfile只有一个CMD命令生效,
且如果docker run时指定了命令,会覆盖dockerfile的CDM指定的命令。
ENTRYPOINT:
指定容易启动时要运行的命令,一般不会被覆盖,可以通过docker run --entrypoint覆盖
WORKDIR:
dockerfile后续指令的工作目录
EVN:
ENV TARGET_DIR /opt/app:指定环境变量
VOLUME:
用来向基于镜像创建的容器添加卷,
让我们可以将数据(如源代码)、数据库或者其他内容添加到镜像中而不是将这些内容提交到镜像中,并且允许我们在多个容器间共享这些内容
ADD:
用来将构建环境下的文件和目录复制到镜像中。
ADD 源文件 目的文件位置
COPY:
ARG:
用来定义可以在docker build命令运行时传递给构建运行时的变量,我们只需要在构建时使用--build-arg标志即可
以上内容参考了《第一本Docker书》,如果有不正确的地方,欢迎指出