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