3. 容器的运行管理
容器的管理分为:启动(start)、停止(stop)、重启动(restart)、暂停(pause)、恢复(unpause)、删除(rm)操作。
容器功能
命令格式
说明
启动
docker start [选项] 容器名或容器ID启动处于停止状态的容器。
停止
docker stop [选项] 容器名或容器ID停止正在运行的容器。
重启动
docker restart [选项] 容器名或容器ID停止容器的运行重新启动。
暂停
`docker pause [选项] 容器名或容器ID暂停容器的运行。
恢复
`docker unpause [选项] 容器名或容器ID恢复已暂停容器的运行。
删除
`docker rm [选项] 容器名或容器ID删除容器。
停止和暂停状态的区别
- 停止状态:是正常终止容器内运行的进程,释放资源,并将容器状态标记为 Exited。
- 特点:不占用CPU和内存等资源。容器内所有进程终止运行。
- 暂停状态:是冻结容器内运行的进程,挂起所有进程,不终止进程。
- 特点:不释放CPU和内存等资源。可以快速恢复运行。
示例
weimingze@mzstudio:~$ sudo docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"
CONTAINER ID IMAGE STATUS NAMES
a9cffc0d7700 mysql Up 17 minutes mysql_server
weimingze@mzstudio:~$ sudo docker stop mysql_server
mysql_server
weimingze@mzstudio:~$ sudo docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"
CONTAINER ID IMAGE STATUS NAMES
weimingze@mzstudio:~$ sudo docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"
CONTAINER ID IMAGE STATUS NAMES
a9cffc0d7700 mysql Exited (0) 9 seconds ago mysql_server
weimingze@mzstudio:~$ sudo docker start mysql_server
mysql_server
weimingze@mzstudio:~$ sudo docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"
CONTAINER ID IMAGE STATUS NAMES
a9cffc0d7700 mysql Up 3 seconds mysql_server
weimingze@mzstudio:~$ sudo docker pause mysql_server
mysql_server
weimingze@mzstudio:~$ sudo docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"
CONTAINER ID IMAGE STATUS NAMES
a9cffc0d7700 mysql Up 30 seconds (Paused) mysql_server
weimingze@mzstudio:~$ sudo docker unpause mysql_server
mysql_server
weimingze@mzstudio:~$ sudo docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"
CONTAINER ID IMAGE STATUS NAMES
a9cffc0d7700 mysql Up 46 seconds mysql_server
weimingze@mzstudio:~$ sudo docker stop mysql_server
mysql_server
weimingze@mzstudio:~$ sudo docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"
CONTAINER ID IMAGE STATUS NAMES
weimingze@mzstudio:~$ sudo docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"
CONTAINER ID IMAGE STATUS NAMES
a9cffc0d7700 mysql Exited (0) 16 seconds ago mysql_server
weimingze@mzstudio:~$ sudo docker rm mysql_server
mysql_server
weimingze@mzstudio:~$ sudo docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"
CONTAINER ID IMAGE STATUS NAMES
上述
docker ps命令使用--format "table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}"选项是只显示CONTAINER ID,IMAGE,STATUS,NAMES这四列。