1.查看docker状态

docker info

2.运行docker容器

docker run --name cranky_meitner  -i -t ubuntu /bin/bash
# run:运行容器的指令
# --name cranky_meitner:将容器的名称命名为cranky_meitner
# -i:保证容器中STDIN是开启的
# -t:告诉Docker为要创建的容器分配一个伪tty终端,这样,新创建的容器才能够提供一个交互式的shell。
# ubuntu:基于ubuntu来创建容器
# /bin/bash:要运行的命令。也就是说开机启动后,运行/bin/bash命令,来启动一个BashShell
#
# 之后就会进入容器内(一个全新ubuntu系统)

3.查看容器列表

docker ps -a
# docker ps 只能看到当前正在运行的容器
# -a: 列出所有容器
#
# 执行结果
# CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
#237903d04103        ubuntu              "/bin/bash"         6 minutes ago       Exited (0) 7 seconds ago                       cranky_meitner

4.启动、重启、停止容器

docker start cranky_meitner
# start:启动命令,也可以使用restart,或者stop来进行重启和停止。
# cranky_meitner:容器的名称,也可以是ID

docker restart cranky_meitner
docker stop cranky_meitner
# stop命令会向容器发送SIGTERM信号,类似正常关机
docker kill cranky_meitner
# 向容器进程发送SIGKILL信号,类似直接拔电源

5.重新进入shell(附着到容器上)

docker attach cranky_meitner
# cranky_meitner:容器名称
# Docker容器重新启动的时候,会沿用docker run命令时指定的参数来运行,因此我们的容器重新启动后,会运行一个交互式的shell。
# 使用attach命令可以重新附着到该容器的会话上(就是进入容器shell)。如果使用exit命令推出shell,容器会停止。

6.创建守护式容器

docker run --name daemon_dave -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
# -d:指定该容器为守护进程容器(无交互式shell)
# /bin/sh -c "while true; do echo hello world; sleep 1; done":
# 容器创建成功后,运行该命令不断打印hello world

7.获取容器的日志

docker logs daemon_dave
# daemon_dave:容器的名称

docker logs -f daemon_dave
# -f:监控Docker日志,类似tail -f

docker logs --tail 10 daemon_dave
# --tail 10:获取日志的最后10行记录
# 该命令也可以加 -f ,获取最后10行日志,并且不断打印新日志

8.查看容器内的进程

docker top daemon_dave
# daemon_dave: 容器的名称

9.统计Docker信息

docker stats daemon_dave daemon_dave2
# daemon_dave:容器的名称
# daemon_dave: 容器的名称,stats命令可以同时查看多个容器的状态

# 输出样例:
CONTAINER           CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
daemon_dave         0.18%               172 KiB / 1.781 GiB   0.01%               648 B / 648 B       0 B / 0 B           2

10.进入容器Shell

docker exec -t -i daemon_dave /bin/bash
# exec:在容器内部运行进程
# -i:捕捉STDIN
# -t:告诉Docker为要创建的容器分配一个伪tty终端,这样,新创建的容器才能够提供一个交互式的shell。
# daemon_dave:容器的名称
# /bin/bash:执行/bin/bash命令
# 这样就能就能进入容器,进行交互,并且exit退出时,不会停止容器

docker exec -d daemon_dave touch /etc/new_config_file
# -d:表明需要运行一个后台进程
# touch /etc/new_config_file: 将会在后台执行该命令

11.删除容器

docker rm daemon_dave
# daemon_dave: 容器名称
# 如果删除失败,需要先停止容器,或使用-f参数