docker维护操作
- 1.暂停、恢复容器中所有的进程(pause/unpause)
- 2.查看容器中运行的进程信息(top)
- 3.获取实时事件(events)
- 4,获取容器的日志(logs)
- 5.将文件系统作为一个tar归档文件导出到STDOUT(export)
- 6.从容器创建一个新的镜像(commit)
- 7.容器与主机之间的数据拷贝(cp)
- 8.检查容器里文件结构的更改(diff)
- 9.从镜像仓库中拉取或者更新指定镜像(pull)
- 10.将本地的镜像上传到镜像仓库,要先登陆到镜像仓库(push)
- 11.将指定镜像保存成 tar 归档文件(save)
- 12.导入使用 docker save 命令导出的镜像(load)
- 13.从归档文件中创建镜像(import)
- 13.防火墙重启后docker容器启动不了
1.暂停、恢复容器中所有的进程(pause/unpause)
- docker pause :暂停容器中所有的进程。
- docker unpause :恢复容器中所有的进程。
# 暂停数据库容器db01提供服务。
docker pause db01
# 恢复数据库容器 db01 提供服务
docker unpause db0
2.查看容器中运行的进程信息(top)
# 查看容器mymysql的进程信息。
docker top mymysql
# 查看所有运行容器的进程信息。
for i in `docker ps |grep Up|awk '{print $1}'`;do echo \ &&docker top $i; done
3.获取实时事件(events)
- -f : 根据条件过滤事件;
- –since : 从指定的时间戳后显示所有事件;
- –until : 流水时间显示到指定的时间为止;
# 显示docker 2016年7月1日后的所有事件。
docker events --since="1467302400"
# 显示docker 镜像为mysql:5.6 2016年7月1日后的相关事件。
docker events -f "image"="mysql:5.6" --since="1467302400"
说明:如果指定的时间是到秒级的,需要将时间转成时间戳。如果时间为日期的话,可以直接使用,如–since=“2016-07-01”。
4,获取容器的日志(logs)
logs参数说明:
- -f : 跟踪日志输出
- –since : 显示某个开始时间的所有日志
- -t : 显示时间戳
- –tail : 仅列出最新N条容器日志
# 跟踪查看容器mynginx的日志输出。
docker logs -f mynginx
# 查看容器mynginx从2016年7月1日后的最新10条日志。
docker logs --since="2016-07-01" --tail=10 mynginx
5.将文件系统作为一个tar归档文件导出到STDOUT(export)
- -o : 将输入内容写到文件。
# 将id为a404c6c174a2的容器按日期保存为tar文件。
docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2
ls mysql-`date +%Y%m%d`.tar
6.从容器创建一个新的镜像(commit)
-
-a : 提交的镜像作者;
-
-c : 使用Dockerfile指令来创建镜像;
-
m : 提交时的说明文字;
-
-p : 在commit时,将容器暂停。
# 将容器a404c6c174a2 保存为新的镜像,
# 并添加提交人信息和说明信息。
docker commit -a "gee" -m "my db" a404c6c174a2 mymysql:v1
7.容器与主机之间的数据拷贝(cp)
- -L : 保持源目标中的链接
# 将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。
docker cp /www/runoob 96f7f14e99ab:/www/
# 将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。
docker cp /www/runoob 96f7f14e99ab:/www
# 将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。
docker cp 96f7f14e99ab:/www /tmp/
8.检查容器里文件结构的更改(diff)
# 查看容器mymysql的文件结构更改。
docker diff mymysql
9.从镜像仓库中拉取或者更新指定镜像(pull)
参数说明:
- -a : 拉取所有 tagged 镜像
- –disable-content-trust : 忽略镜像的校验,默认开启
# 从Docker Hub下载java最新版镜像。
docker pull java
# 从Docker Hub下载REPOSITORY为java的所有镜像。
docker pull -a java
10.将本地的镜像上传到镜像仓库,要先登陆到镜像仓库(push)
参数说明:
- –disable-content-trust : 忽略镜像的校验,默认开启
# 上传本地镜像myapache:v1到镜像仓库中。
docker push myapache:v1
11.将指定镜像保存成 tar 归档文件(save)
参数说明:
- -o : 输出到的文件。
# 将镜像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文档
docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
12.导入使用 docker save 命令导出的镜像(load)
参数说明:
- –input , -i : 指定导入的文件,代替 STDIN。
- –quiet , -q : 精简输出信息。
# 导入镜像
docker load --input fedora.tar
13.从归档文件中创建镜像(import)
参数说明:
- -c : 应用docker 指令创建镜像;
- -m : 提交时的说明文字;
# 从镜像归档文件my_ubuntu_v3.tar创建镜像,命名为runoob/ubuntu:v4
docker import my_ubuntu_v3.tar runoob/ubuntu:v4
13.防火墙重启后docker容器启动不了
因为docker是高度依赖iptables 的所以重启完防火墙或者修改防火墙后需要重启docker服务再重新启用容器。
- 首先先查看iptables有无经用端口啥的,如果是因为禁用端口啥的起不了容器,需要先放行再重启
iptables -nvL
- 重启docker
systemctl restart docker