一、容器生命周期管理
1.1 run 命令
docker run : 创建一个新的容器并允许一个命令
语法
docker run [OPTIONS] IMAGE [COMMAND][ARG...]
OPTIONS说明:
-
-a stdin:指定标准输入输出内容类型,可选STDIN/STDOUT/STDERR 三项;
-
-d:后台运行容器,并返回容器id;
-
-i:已交互模式运行容器,通常与-t同时使用;
-
-p:端口映射,格式为:主机端口:容器端口
-
-t:为容器重新分配一个伪输入终端,通常与-i同时使用;
-
--name=“xxxx”:为容器指定一个名称;
-
--dns 8.8.8.8:指定容器使用的DNS服务器;默认和宿主一致;
-
--dns-search example.com:指定容器DNS搜索域名,默认和宿主一致;
-
-h "name":指定容器的hostname;
-
-e username=“xxxx”:设置环境变量;
-
--env-file=[]:从指定文件读入环境变量;
-
-m:设置容器使用内存最大值;
-
--net=“bridge”:指定 容器的网络连接类型。支持bridge/none/container四种类型;
-
--link=[]:添加链接到另一个容器;
-
--expose=[];开放一个端口或一组端口;
-
-v:挂载
1.2 start/stop/restart 命令
docker start:启动容器
docker stop:停止容器
docker restart:重启容器
语法
docker start/stop/restart [OPTIONS] CONTAINER [CONTAINER ...]
1.3 kill 命令
docker kill:杀掉一个运行中的容器
语法
docker kill [OPTIONS] CONTAINER [CONTAINER ...]
OPTIONS说明:
-
-s:向容器发送一个信号
1.4 rm 命令
docker rm:删除容器
语法
docker rm [OPTIONS] CONTAINER [CONTAINER ...]
OPTIONS说明:
-
-f:通过SIGKILL信号强制删除一个运行中的容器
-
-l:移除容器间的网络连接,而非容器本身
-
-v:删除与容器关联的卷
实例
强制删除容器
docker rm -f db01 db02
移除容器nginx对容器db01的连接,连接名db
docker rm -l db
删除容器nginx,并删除容器挂载的数据卷
docker rm -v nginx
1.5 pause/unpause 命令
docker pause:暂停容器中所有的进程。
docker unpause:恢复容器中所有的进程。
语法
docker pause/unpause [OPTIONS] CONTAINER [CONTAINER ...]
1.6 create 命令
docker create:创建一个新的容器但不启动
用法同docker run
语法
docker create [OPTIONS] IMAGE [COMMAND][ARG...]
1.7 exec 命令
docker exec:在运行的容器中执行命令
语法
docker exec [OPTIONS] CONTAINER [COMMAND][ARG...]
OPTIONS说明:
-
-d:分离模式,在后台运行
-
-i:即使没有附加STDIN打开
-
-t:分配一个伪终端
实例
在容器mynginx中以交互模式执行容器内/root/runoob.sh脚本
docker exec -it mynginx /bin/sh /root/runoob.sh
http://www.runoob.com/
在容器mynginx中开启一个交互模式的终端
docker exec -it mynginx /bin/bash
root@dfdsdcd:/#
二、容器操作
2.1 ps 命令
docker ps:列出容器
语法
docker ps [OPTIONS]
OPTIONS说明:
-
-a:显示所有的容器,包括未运行的。
-
-f:根据条件过滤显示的内容。
-
--format:指定返回值的模板文件。
-
-l:显示最近创建的容器。
-
-n:列出最近创建的n个容器。
-
--no-trunc:不截断输出。
-
-q:静默模式,只显示容器编号。
-
-s:显示总的文件大小。
2.2 inspect 命令
docker inspect:获取容器/镜像的元数据
语法
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
OPTIONS说明:
-
-f:指定返回值的模板文件。
-
-s:显示总的文件大小。
-
--type:为指定类型返回JSON。
2.3 top 命令
docker top:查看容器中运行的进程信息,支持ps命令参数
语法
docker top [OPTIONS] CONTAINER [ps OPTIONS]
容器运行时不一定有/bin/bash终端来交互执行top命令,而且容器还不一定有top命令,可以使用docker top来实现查看container中正在运行的进程。
实例
查看容器mymysql的进程信息。
docker top mymysql
UID PID PPID C STIME TTY TIME CMD
root 24342 24320 0 Feb15 ? 00:03:27 /nfs-subdir-external-provisioner
查看所有运行容器的进程信息
for i in ·docker ps |grep Up|awk '{print $1}'·;do echo \ &&docker top $i;done
2.4 attach 命令
docker attach:连接到正在运行中的容器。
语法
docker attach [OPTIONS] CONTAINER
2.5 events 命令
docker events:从服务器获取实时事件
语法
docker events [OPTIONS]
OPTIONS说明:
-
-f:根据条件过滤事件;
-
--since:从指定的时间戳后显示所有事件;
-
--until:流水时间显示到指定的时间为止;
2.6 logs 命令
docker logs:获取容器的日志
语法
docker logs [OPTIONS] CONTAINER
OPTIONS说明:
-
-f:跟踪日志输出
-
--since:显示某个开始时间的所有日志
-
-t:显示时间戳
-
--tail:仅列出最新N条容器日志
实例
跟踪查看容器的日志输出
docker logs -f 8c350d1731fc
I0215 13:00:45.732655 1 leaderelection.go:242] attempting to acquire leader lease kube-system/nfs-pgsc004...
I0215 13:01:03.329957 1 leaderelection.go:252] successfully acquired lease kube-system/nfs-pgsc004
2.7 wait 命令
docker wait:阻塞运行直到容器停止,然后打印出它的退出代码。
语法
docker wait [OPTIONS] CONTAINER [CONTAINER ...]
2.8 export 命令
docker export:将容器作为一个tar包导出
语法
docker export [OPTIONS] CONTAINER
OPTIONS说明:
-
-o:tar包名
2.9 port 命令
docker port:列出指定的容器的端口映射
语法
docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
三、容器rootfs命令
3.1 commit 命令
docker commit:从容器创建一个新的镜像。
语法
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
OPTIONS说明:
-
-a:提交的镜像作者;
-
-c:使用Dockerfile指令来创建镜像;
-
-m:提交时的说明文字;
-
-p:在commit时,将容器暂停。
实例
docker commit -a "xxxx" -m "xxxxx" dfdsfs3ds mysql:v1
3.2 cp 命令
docker cp:用于容器与主机之间的数据拷贝。
语法
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
docker cp [OPTIONS] DEST_PATH CONTAINER:SRC_PATH
OPTIONS说明:
-
-L:保持原目标中的链接
实例
docker cp /www/dfdf 342dff33f:/www/
docker cp /www/dfdf 342dff33f:/www #重命名
docker cp 342dff33f:/www /tmp/
四、镜像仓库
4.1 login 命令
docker login:登录到一个docker镜像仓库
docker logout:登出一个docker镜像仓库
语法
docker login [OPTIONS] [SERVER]
docker logout [OPTIONS] [SERVER]
OPTIONS说明:
-
-u:用户名
-
-p:密码
4.2 pull 命令
docker pull:从镜像仓库中拉取或者更新镜像
语法
docker pull [OPTIONS] NAME[:TAG]
OPTIONS说明:
-
-a:拉取所有tagged镜像
-
--disable-content-trust:忽略镜像的校验,默认开启
4.3 push 命令
docker push:将本地的镜像上传到镜像仓库,先要登录到镜像仓库
语法
docker push [OPTIONS] NAME[:TAG]
OPTIONS说明:
-
--disable-content-trust:忽略镜像的校验,默认开启
-
-a:推送所有tagged镜像
4.4 search 命令
docker search:从Docker Hub查找镜像
语法
docker search [OPTIONS] TERM
OPTIONS说明:
-
-f:设置过滤条件;
-
--no-trunc:显示完整的镜像描述;
-
--limit:列出指定数量的镜像;
实例
docker search nginx -f "is-official=true" #用于只搜索官方镜像
五、本地镜像管理
5.1 images 命令
docker images:列出本地镜像
语法
docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS说明:
-
-a:列出本地所有的镜像;
-
--digests:显示镜像的摘要信息;
-
-f:显示满足条件的镜像;
-
--format:指定返回值的模板文件;
-
--no-trunc:显示完整的镜像信息;
-
-q:只显示镜像ID;
5.2 rmi 命令
docker rmi:删除本地一个或多个镜像。
语法
docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS说明:
-
-f:强制删除;
-
--no-prune:不移除该镜像的过程镜像,默认移除;
5.3 tag 命令
docker tag:标记本地镜像
语法
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
5.4 build 命令
docker build:用于使用Dockerfile创建镜像
语法
docker build [OPTIONS] PATH | URL | -
OPTIONS说明:
-
--build-arg=[]:设置镜像创建时的变量;
-
--cpu-shares:设置cpu使用权重;
-
--cpu-period:限制CPU CFS周期;
-
--cpuset-cpus:指定使用的CPU id;
-
--cepset-mems:指定使用的内存 id;
-
--disable-content-trust:忽略镜像的校验,默认开启;
-
-f:指定要使用的Dockfile路径;
-
--force-rm:设置镜像过程中删除中间容器;
-
--isolation:使用容器隔离技术;
-
--label=[]:设置镜像使用的元数据;
-
-m:设置内存最大值;
-
--memory-swap:设置swap的最大值为内存+swap,“-1”表示不限swap;
-
--no-cache:创建镜像的过程不使用缓存;
-
--pull:尝试去更新镜像的新版本;
-
--quiet,-q:安静模式,成功后只输出镜像ID;
-
--rm:设置镜像成功后删除中间容器;
-
--shm-size:设置/dev/shm的大小,默认值是64M;
-
--ulimit:Ulimit配置
-
--tag,-t:镜像的名字及标签,通常name:tag或者name格式;可以在一次构建中为一个镜像设置多个标签;
-
--network:默认default,在构建期间设置RUN指令的网络模式;
实例
使用当前目录的Dockerfile创建镜像,标签为runoob/ubuntu:v1。
docker build -t runoob/ubuntu:v1 .
5.5 history 命令
docker history:查看指定镜像的创建历史。
语法
docker history [OPTIONS] IMAGE
OPTIONS说明:
-
-H:以可读的格式打印镜像大小和日期,默认为true;
-
--no-trunc:显示完整的提交记录;
-
-q:仅列出提交记录ID;
5.6 save 命令
docker save:将指定镜像保存成tar归档文件。
语法
docker save [OPTIONS] IMAGE [IMAGE...]
OPTIONS说明:
-
-o:输出到的文件
实例
将镜像ubuntu:v1生成ubuntu_v1.tar包
docker save -o ubuntu_v1.tar ubuntu:v1
5.7 import 命令(export对应)
docker import:从tar包创建镜像。(export对应)
语法
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
OPTIONS说明:
-
-c:应用docker指令创建镜像;
-
-m:提交时说明文字;
实例
将ubuntu_v1.tar包生成ubuntu:v1镜像
docker import ubuntu_v1.tar ubuntu:v1
5.8 load 命令(save对应)
docker load:导入使用 docker save命令导出的镜像。(save对应)
语法
docker load [OPTIONS]
OPTIONS说明:
-
--input , -i:指定导入的文件,代替 STDIN。
-
--quiet , -q:精简输出信息。
实例
docker load < test.tar
docker load -i test.tar
import 与 load 都可以导入为一个 image ,但是 export 是对应一个 container ,save 对应一个 image
六、info|version
6.1 info 命令
docker info:显示Docker系统信息,包括镜像和容器数。
语法
docker info [OPTIONS]
6.2 version 命令
docker version:显示Docker版本信息。
语法
docker version [OPTIONS]