安装及配置国内源
安装Docker服务
yum install docker
启动Docker服务
service docker start
修改Docker默认源为国内镜像,首先创建文件/etc/docker/daemon.json
,修改内容:
{
"registry-mirrors": ["https://你的阿里云专属加速器地址.mirror.aliyuncs.com"]
}
使镜像设置生效
systemctl daemon-reload
service docker restart
常用命令
镜像操作
从镜像源下载镜像(NAME:镜像名称 TAG:镜像标签)
docker pull NAME[:TAG]
docker pull ubuntu # 下载ubuntu镜像(最新版)
docker pull ubuntu:14.04 # 下载版本(tag)为14.04的镜像
列出本地主机上已有镜像
docker images
为本地镜像添加标签
docker tag ubuntu:latest my_diy_ubuntu:latest
获取镜像的详细信息(返回一个json信息)
docker inspect NAME[:TAG]
docker inspect ubuntu
docker inspect -f {{".ContainerConfig.Hostname"}} ubuntu:latest # 筛选并提取json中特定位置内容
查看镜像历史
docker history NAME[:TAG]
docker history ubuntu
docker history ubuntu --no-trunc # 不截断过长的内容,完整输出
在远程仓库钟查找镜像(默认从docker官方仓库中查找(美国服务器))(TERM:关键字)
docker search TERM
docker search ubuntu
删除本地的镜像(当镜像存在对应容器时无法删除)
docker rmi IMAGE [IMAGE...]
docker rmi my_diy_ubuntu:latest # 仅删除镜像的标签(当指定名称为标签时)
docker rmi ubuntu:latest # 彻底删除镜像
存出镜像(导出镜像为本地文件)
docker save -o ubuntu_file.tar ubuntu:14.04
载入镜像(将文件导入本地镜像列表)
docker load --input ubuntu_file.tar
创建新镜像(基于现有镜像的容器)
提交新镜像语法为:
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
其中
- -a 作者信息
- -c 提交时执行Dockerfile指令
- -m 提交信息
- -p 提交时暂停容器运行
例如:
$ docker run -it ubuntu /bin/bash # 基于ubuntu镜像创建一个容器并运行bash
root@a925cb40b3f0:/# touch test # 创建一个名为test的文件
root@a925cb40b3f0:/# exit # 退出容器
$ docker commit -m "add a file" -a "MyName" a925cb40b3f0 test:0.1 # 提交一个新镜像
创建新镜像(基于模板导入)
语法为:
docker import [OPTIONS] file|URL|-[REPOSITORY[:TAG]]
容器操作
查看当前运行的容器
docker ps
查看本机所有的容器
docker ps -a
创建容器(该命令具体非常复杂,需参考其他材料)
docker create -it ubuntu # 创建容器
# 或
# docker run 等价于 docker create后执行 docker run
docker run -it ubuntu /bin/bash # 创建并使用容器中的bash
docker run ubuntu /bin/echo 'Hello World' # 创建并调用echo
启动容器
docker start 00df5d374123 # 00df5d374123为CONTAINER ID
终止容器
docker stop [-t[=10]] [CONTAINER...]
docker stop -t=10 00df5d374123
删除容器
docker rm CONTAINER_ID
docker rm f4145d1d84e1
docker rm -f f4145d1d84e1 # 强制终止并删除
docker rm -l f4145d1d84e1 # 删除容器的连接但保持容器
docker rm -v f4145d1d84e1 # 删除容器挂载的数据卷
在进入后台的容器中执行操作使用docker exec
或docker attach
命令
docker exec -it 243c32535da7 /bin/bash
导出容器为快照
docker export -0 test_continer.tar f4145d1d84e1
导入容器作为镜像(该命令与docker load类似,但容器快照不含历史记录和元数据,仅包含当时的快照状态。但容器快照导入时可以重新指定标签等信息)
docker import test_continer.tar - test/ubuntu:v1.0
本文大部分内容整理自:《Docker技术入门与实战 第2版》
转载请注明出处
《CentOS 7.x下搭建Docker全过程及Docker常用命令速查》https://www.ywlib.com/archives/125.html (from 一闻自习室)