Docker 命令大全 Docker Compose 菜鸟教程-Docker ps 命令 菜鸟教程-Docker rm 命令 菜鸟教程-Docker run 命令
docker hub
容器生命周期管理 ps 命令 docker ps : 列出容器
script
OPTIONS说明:
1 2 3 4 5 6 7 8 -a :显示所有的容器,包括未运行的。 -f :根据条件过滤显示的内容。 --format :指定返回值的模板文件。 -l :显示最近创建的容器。 -n :列出最近创建的n个容器。 --no-trunc :不截断输出。 -q :静默模式,只显示容器编号。 -s :显示总的文件大小。
实例
script 1 2 3 4 runoob@runoob:~$ docker ps CONTAINER ID IMAGE COMMAND ... PORTS NAMES 09b93464c2f7 nginx:latest "nginx -g 'daemon off" ... 80/tcp, 443/tcp myrunoob 96f7f14e99ab mysql:5.6 "docker-entrypoint.sh" ... 0.0.0.0:3306->3306/tcp mymysql
输出详情介绍:
CONTAINER ID: 容器 ID。 IMAGE: 使用的镜像。 COMMAND: 启动容器时运行的命令。 CREATED: 容器的创建时间。 STATUS: 容器状态。
状态有7种: created(已创建) restarting(重启中) running(运行中) removing(迁移中) paused(暂停) exited(停止) dead(死亡)
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。 NAMES: 自动分配的容器名称。
script 1 2 3 4 5 6 7 runoob@runoob:~$ docker ps -n 5 CONTAINER ID IMAGE COMMAND CREATED 09b93464c2f7 nginx:latest "nginx -g 'daemon off" 2 days ago ... b8573233d675 nginx:latest "/bin/bash" 2 days ago ... b1a0703e41e7 nginx:latest "nginx -g 'daemon off" 2 days ago ... f46fb1dec520 5c6e1090e771 "/bin/sh -c 'set -x \t" 2 days ago ... a63b4a5597de 860c279d2fec "bash" 2 days ago ...
script 1 2 3 4 5 6 7 8 9 10 11 12 runoob@runoob:~$ docker ps -a -q 09b93464c2f7 b8573233d675 b1a0703e41e7 f46fb1dec520 a63b4a5597de 6a4aa42e947b de7bb36e7968 43a432b73776 664a8ab1a585 ba52eb632bbd ...
script 1 2 3 $ docker run -d --name=test-nginx --label color=blue nginx $ docker ps --filter "label=color" $ docker ps --filter "label=color=blue"
script 1 $ docker ps --filter"name=test-nginx"
script 1 2 3 $ docker ps -a --filter 'exited=0' $ docker ps --filter status=running $ docker ps --filter status=paused
script 1 2 3 4 5 # 镜像名称 $ docker ps --filter ancestor=nginx # 镜像ID $ docker ps --filter ancestor=d0e008c6cf02
script 1 2 $ docker ps -f before=9c3527ed70ce $ docker ps -f since=6e63f6ff38b0
rm 命令 docker rm :删除一个或多个容器。
script 1 docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS说明:
-f :通过 SIGKILL 信号强制删除一个运行中的容器。
-l :移除容器间的网络连接,而非容器本身。
-v :删除与容器关联的卷。
实例
script
移除容器 nginx01 对容器 db01 的连接,连接名 db:
script
删除容器 nginx01, 并删除容器挂载的数据卷:
script
script 1 docker rm $(docker ps -a -q)
run 命令 docker run :创建一个新的容器并运行一个命令
script 1 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项; -d: 后台运行容器,并返回容器ID; -i: 以交互模式运行容器,通常与 -t 同时使用; -P: 随机端口映射,容器内部端口随机映射到主机的高端口 -p: 指定端口映射,格式为:主机(宿主)端口:容器端口 -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; --name="nginx-lb": 为容器指定一个名称; --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致; --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致; -h "mars": 指定容器的hostname; -e username="ritchie": 设置环境变量; --env-file=[]: 从指定文件读入环境变量; --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行; -m :设置容器使用内存最大值; --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型; --link=[]: 添加链接到另一个容器; --expose=[]: 开放一个端口或一组端口; --volume , -v: 绑定一个卷,格式为 宿主目录:容器目录
实例
使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
script 1 docker run --name mynginx -d nginx:latest
使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。
script 1 docker run -P -d nginx:latest
使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
第一个/data是宿主目录,第二个/data是容器目录
script 1 docker run -p 80:80 -v /data:/data -d nginx:latest
绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。
script 1 $ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
script 1 2 runoob@runoob:~$ docker run -it nginx:latest /bin/bash root@b8573233d675:/#
start/stop/restart 命令 docker start :启动一个或多个已经被停止的容器
docker stop :停止一个运行中的容器
docker restart :重启容器
script 1 2 3 docker start [OPTIONS] CONTAINER [CONTAINER...] docker stop [OPTIONS] CONTAINER [CONTAINER...] docker restart [OPTIONS] CONTAINER [CONTAINER...]
实例
script
script
script
exec 命令 docker exec :在运行的容器中执行命令
script 1 docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS说明:
1 2 3 -d :分离模式: 在后台运行 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端
实例
在容器 mynginx 中以交互模式执行容器内 /root/runoob.sh 脚本:
script 1 2 runoob@runoob:~$ docker exec -it mynginx /bin/sh /root/runoob.sh http://www.runoob.com/
在容器 mynginx 中开启一个交互模式的终端:
script 1 2 runoob@runoob:~$ docker exec -i -t mynginx /bin/bash root@b1a0703e41e7:/#
也可以通过 docker ps -a 命令查看已经在运行的容器,然后使用容器 ID 进入容器。
查看已经在运行的容器 ID:
script 1 2 3 4 # docker ps -a ... 9df70f9a0714 openjdk "/usercode/script.sh…" ...
第一列的 9df70f9a0714 就是容器 ID。
script 1 # docker exec -it 9df70f9a0714 /bin/bash
本地镜像管理 rmi 命令 docker rmi : 删除本地一个或多少镜像。
语法
script 1 docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS说明:
1 2 -f :强制删除 --no-prune :不移除该镜像的过程镜像,默认移除
实例 script 1 2 3 4 root@runoob:~# docker rmi -f runoob/ubuntu:v4 Untagged: runoob/ubuntu:v4 Deleted: sha256:1c06aa18edee44230f93a90a7d88139235de12cd4c089d41eed8419b503072be Deleted: sha256:85feb446e89a28d58ee7d80ea5ce367eebb7cec70f0ec18aa4faa874cbd97c73