00 启动 docker 守护进程
sudo systemctl start docker
01 查看 docker 信息
sudo docker info
02 查看完整的 docker 命令列表
sudo docker help
03 docker run 中的 -i 与 -t 选项
# -i:保证容器的 STDIN 是开启的
# -t:为创建的容器分配一个伪 tty 终端
sudo docker run -it ubuntu /bin/bash
04 查看 docker run 的所有可用选项
sudo docker help run
05 查看当前系统中的容器
# 查看正在运行的容器
sudo docker ps
# 列出最后一个运行的容器,无论其现在正在运行还是已经停止
sudo docker ps -l
# 列出所有容器,包括正在运行与已经停止的
sudo docker ps -a
# 显示最后运行的5个容器
sudo docker ps -n 5
06 容器命名
sudo docker run --name myubuntu -it ubuntu /bin/bash
07 容器的启动、停止、重启
# 指定容器时,可以使用容器名,也可以使用容器ID
sudo docker start myubuntu
# 终止容器(优雅)
sudo docker stop myubuntu
# 终止容器(暴力)
sudo docker kill myubuntu
# 重启容器
sudo docker restart myubuntu
08 附着到容器上
# 可能需要按两次回车,而且很多时候,docker attach这个命令并不好使
sudo docker attach myubuntu
09 退出容器
# 退出后,容器终止
exit
# 退出后,容器还在运行
ctrl p + ctrl q
10 创建守护式容器
# -d:将容器放到后台运行,并返回容器的ID
sudo docker run --name myubuntu -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
11 容器的日志
# 获取容器已经输出的日志
sudo docker logs myubuntu
# 监控容器的日志
sudo docker logs -f myubuntu
# 获取日志的最后10行
sudo docker logs --tail 10 myubuntu
# 跟踪最新日志
sudo docker logs --tail 0 -f myubuntu
# 输出日志时,加上时间戳
sudo docker logs -ft myubuntu
# 退出日志跟踪
Ctrl + C
12 查看容器内的进程
# 在容器内查看
ps -aux
# 在容器外查看
sudo docker to myubuntu
13 查看容器的统计信息
# 查看单个容器的统计信息
sudo docker stats myubuntu
# 同时查看多个容器的统计信息
sudo docker stats myubuntu myubuntu1
14 在容器内部运行进程
# 运行后台任务
sudo docker exec -d myubuntu touch /etc/new_config_file
# 运行交互任务
sudo docker exec -it myubuntu /bin/bash
15 自动重启容器
# --restart标志被设置为always,无论容器的退出代码是什么,docker都会重启该容器
sudo docker run --restart=always --name myubuntu -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
# --restart标志被设置为on-failure,只有当容器的退出代码非0时,docker才会重启该容器
sudo docker run --restart=on-failure --name myubuntu -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
# --restart标志被设置为on-failure:5,只有当容器的退出代码非0时,docker才会重启该容器,最多重启5次
sudo docker run --restart=on-failure --name myubuntu -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
16 详细的检查容器
# 获取容器详细的配置信息
sudo docker inspect myubuntu
# 获取指定的配置信息:返回容器的运行状态
sudo docker inspect --format='{{ .State.Running}}' myubuntu
# 获取指定的配置信息:返回容器的IP
sudo docker inspect --format '{{ .NetworkSettings.IPAddress}}' myubuntu
# 同时指定多个容器
sudo docker inspect --format '{{ .Name }} {{ .State.Running}}' myubuntu myubuntu1
17 删除容器
# 删除停止的容器
sudo docker rm myubuntu
# 删除运行中的容器
sudo docker rm -f myubuntu
# 删除所有的容器,-a表示列出所有的容器,-q表示只返回容器的id
sudo docker rm `sudo docker ps -a -q`
# 删除所有的容器,即使容器正在运行,也一并删除
sudo docker rm -f `sudo docker ps -a -q`