Docker镜像加速配置;Docker镜像常用操作;Dcoker容器常用操作。
镜像加速器
国内从 Docker Hub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。国内很多云服务商都提供了国内加速器服务,例如:
1 | 网易云加速器 https://hub-mirror.c.163.com |
国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务,具体请参考官方文档。
在CentOS7系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)
1 | [root@docker01 ~]# vim /etc/docker/daemon.json |
注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。
之后重新启动服务。
1 | systemctl daemon-reload |
检查加速器是否生效
执行如下命令,如果从结果中看到了如下内容,说明配置成功。
1 | [root@docker01 ~]# docker info # 显示整个系统的信息 |
Docker镜像操作
说明:Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像。
search搜索镜像
1 | [root@docker01 ~]# docker search centos |
pull从镜像中心下载镜像
1 | # 格式:docker pull <image_name>:<tag> ,如果没有tag,默认为 latest |
push推送镜像到镜像中心
1 | 格式:docker push <image_name>:<tag> |
说明:如果有疑问可先忽略,后面搭建私有仓库文章会再次说明的。
images列出镜像
1 | [root@docker01 ~]# docker images # 或者 docker image ls |
save镜像保存到本地
1 | # 格式:docker save -o <保存的文件名> <image_name:tag>|<image_id> |
rmi删除镜像
1 | # 格式:docker rmi <image_name:tag>|<image_id> |
load导入镜像
1 | # 格式:docker load -i <image_file> |
tag标签
1 | # 格式:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] |
使用:根据需要给docker镜像打一个新标签。
info显示整个系统的信息
1 | [root@docker01 ~]# docker info |
system镜像体积查看
另外一个需要注意的问题是,docker image ls 列表中的镜像体积总和并非是所有镜像实际硬盘消耗。由于 Docker 镜像是多层存储结构,并且可以继承、复用,因此不同镜像可能会因为使用相同的基础镜像,从而拥有共同的层。由于 Docker 使用 Union FS,相同的层只需要保存一份即可,因此实际镜像硬盘占用空间很可能要比这个列表镜像大小的总和要小的多。
可以通过以下命令来便捷的查看镜像、容器、数据卷所占用的空间。
1 | [root@docker01 docker_test]# docker system df |
inspect显示镜像或容器的详情
1 | # 格式:docker inspect <镜像ID>|<镜像名>|<容器ID>|<容器名> |
Docker容器操作
run创建容器
1 | # 格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG...] |
参数说明:
1 | -i 交互式操作 |
ps查看容器
1 | [root@docker01 ~]# docker ps # 查看正在运行的容器 |
start启动容器
1 | # 格式:docker start <容器名>|<容器ID> |
restart重启容器
1 | # 格式:docker restart <容器名>|<容器ID> |
stop停止容器
1 | # 格式:docker stop <容器名>|<容器ID> |
rm删除容器
1 | # 格式:docker rm <容器名>|<容器ID> |
说明:如果要强制删除正在运行的容器,使用 docker rm -f <容器ID>。不过生产环境不建议强制删除容器,防止误删除。
rename容器重命名
1 | # 格式:docker rename CONTAINER NEW_NAME |
exec进入容器或在运行容器中执行命令
1 | [root@docker01 ~]# docker exec -it f7c4da3cecad bash |
说明:不建议通过 docker attach 方式进入容器。
1 | # 不要有 -t 选项,因为不需要分配 tty 终端 |
cp复制文件或目录
1 | [root@docker01 ~]# docker exec -i 67ba647b0151 bash -c "ls -l /root" |
1 | [root@docker01 ~]# docker cp 67ba647b0151:/root/original-ks.cfg /root/ # 拷贝文件 |
logs查看容器日志
1 | [root@docker01 ~]# docker ps |
参数说明:
1 | -f 持续打印输出 |
stats容器使用资源统计
可用于监控
1 | [root@docker01 ~]# docker stats <容器ID>|<容器名称> # 持续监控 |
top容器中运行的进程
1 | [root@docker01 ~]# docker ps |
port容器映射特定端口
容器映射端口有:随机端口映射、指定单个端口映射、指定多个端口映射
1 | [root@docker01 ~]# docker pull registry.cn-beijing.aliyuncs.com/google_registry/nginx:1.17 |
1 | [root@docker01 ~]# docker run -d -P --name nginx01 nginx:1.17 |
说明:
1 | 0.0.0.0:1025->80/tcp 前面为宿主机端口,后面为容器端口 |
容器日志:
1 | [root@docker01 ~]# docker logs -f --tail 500 nginx01 |
浏览器访问:
1 | [root@docker01 ~]# docker run -d -p 81:80 --name nginx02 nginx:1.17 |
浏览器访问:
1 | [root@docker01 ~]# docker run -d -p 85:80 -p 445:443 --name nginx03 nginx:1.17 |
推荐阅读
1、 Docker简介与安装
完毕!