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参数