2.1、镜像基本操作
2.1.1、获取镜像:
docker pull <域名>//:
用户可以使用docker pull 命令从网络上下载镜像。对于镜像来说,如果不显式地指定tag,则默认会选择latest标签,即下载仓库中最新版本的镜像。
2.1.2、查看镜像列表
docker images
使用docker images命令可以列出本地主机上已有的镜像。
2.1.3、查看镜像信息
docker inspect
docker inspect命令返回的是一个JSON的格式消息,只要其中的一项内容时,可以通过-f参数来指定。如:
docker inspect -f {{.Config.Env}} ab56bba91343
[PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin NGINX_VERSION=1.17.3 NJS_VERSION=0.3.5 PKG_RELEASE=1~buster]
2.1.4、查找镜像
docker search
使用docker search命令可以搜索远端仓库中共享的镜像,默认搜索Docker hub官方仓库中的镜像。
2.1.5、删除镜像
docker rmi <image>:<tag>
使用docker rmi命令可以删除镜像,其中image可以为标签或ID。
- 当同一个镜像拥有多个标签,docker rmi只是删除该镜像多个标签中的指定标签而已,而不影响镜像文件。
- 当有该镜像创建的容器存在时,镜像文件默认是无法被删除的。
- 如果一个镜像就有一个tag的话,删除tag就删除了镜像的本身。
2.1.6、创建镜像
docker commit
参数说明:
-a , --author : 作者信息
-m , --meassage : 提交消息
-p , --pause=true : 提交时暂停容器运行
基于已有的镜像的容器的创建。
创建一个容器
docker run -d -p 8080:80 nginx
docker commit -a 'vesus' -m '测试' b594a693141e vesus
[root@centos-72 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
vesus latest bd506fd2d93b 5 seconds ago 126MB
nginx latest ab56bba91343 2 days ago 126MB
2.1.7、迁出镜像
docker save -o <image>.tar <image>
参数说明:
-o:设置存储压缩后的文件名称
可以使用docker save命令来迁出镜像,其中image可以为标签或ID。
2.1.8、载入镜像
docker load --input <image>.tar 或 docker load < <image>.tar
使用docker load命令可以载入镜像,其中image可以为标签或ID。这将导入镜像及相关的元数据信息(包括标签等),可以使用docker images命令进行查看。我们先删除原有的liming/test镜像,执行查看镜像,然后在导入镜像
2.1.9.上传镜像
docker push <域名>//:
可以使用docker push命令上传镜像到仓库,默认上传到DockerHub官方仓库(需要登录)。
docker tag ab56bba91343 vesus83/develop:nginx
docker push vesus83/develop:nginx
The push refers to repository [docker.io/vesus83/develop]
ce3539cc1849: Mounted from library/nginx
16d1b1dd2a23: Mounted from library/nginx
2db44bce66cd: Mounted from library/nginx
nginx: digest: sha256:55e7a6f2bb43e38cc34285af03b4973d61f523d26cd8a57e9d00cf4154792d20 size: 948
2.2、容器基本操作
2.2.1、创建容器
新建容器
docker create nginx
使用docker create命令创建的容器处于停止状态,可以使用docker start命令启动它。
可以使用命令
[root@centos-72 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5c10e140598f nginx "nginx -g 'daemon of…" About a minute ago Created boring_cray
新建并启动容器:docker run
docker run -p 80:80 nginx
等价于先执行docker create命令,再执行docker start命令。
-t : 让docker分配一个伪终端并绑定到容器的标准输入上。
-i : 让容器的标准输入保持打开。
docker run 执行原理
- 检查本地是否存在制定的镜像,不存在就从公有仓库下载。
- 利用本地镜像创建并启动一个容器。
- 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层。
- 从宿主机配置的网桥接口桥接一个虚拟接口到容器中去。
- 从地址池配置一个IP地址给容器。
- 执行用户的指定的用户程序。
- 执行完毕后容器被终止。
2.2.2、查看系统日志
docker logs
docker logs –f 动态的查看日志。
[root@centos-72 ~]# docker logs 1352d23d435e
172.17.0.1 - - [14/Sep/2019:16:13:37 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.29.0" "-"
2.2.3、启动和终止容器
docker start
docker stop
2.2.4、进入容器
docker exec
进入容器:
docker exec -i -t 1352d23d435e /bin/bash
root@1352d23d435e:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
2.2.5、删除容器
docker rm命令删除终止状态的容器。
docker rm–f命令进行强制删除。
2.2.6、导入和导出容器
docker export > XX.tar