docker image和container详解


详解 Docker 中的 image 和 container

 

Docker架构图

Docker 是一种容器。Docker 中十分重要的两个概念 Image 和 container,Image 和 container 可以看作面向对象思想中的类和对象。container 是 Image 的实例化。

Image 是只读的,分为 Base Image 和普通 Image,Base Image 是直接基于内核构造的,例如 Ubuntu Image、Centos Image 等。

Image 的操作

# 列出本地所有Images $ docker image ls # 或者 $ docker images  # 运行某个Image $ docker run hello-world 

两种获取 Image 的方法:

  1. Build from Dockerfile:

    新建一个 Dockerfile,例:

    FROM centos RUN yum install -y vim 

    构建 Image:

    $ docker image build -t tag/image-name . # 或者 $ docker build -t tag/image-name . 
  2. Pull from Registry(类似 Github):

    $ docker pull hello-world 

删除 Image:

$ docker rmi <IMAGE ID> # IMAGE ID不必写全 

Container 的操作

列出 Containers:

$ docker container ls # 或者 $ docker ps  # 列出所有包括已经退出的Container $ docker container ls -a # 或者 $ docker ps -a 

交互式运行 Container:

$ docker run -it centos # 此centos与宿主机共享内核,使用uname -a查看内核 

后台运行 container:

$ docker run -d flask-hello-world # 如果不使用--name,将会随机生成一个容器名 

重启某个 Container:

$ docker start <container_name> 

删除一个 Container

$ docker container rm <CONTAINER ID> # CONTAINER ID不必写全 # 或者 $ docker rm <CONTAINER ID> 

删除所有 Container:

$ docker rm $(docker container ls -aq) # 删除所有已退出的Container $ docker rm $(docker container ls -f "status=exited" -q) 

将一个经过修改后的 container 生成为一个新的 image:

$ docker container commit interesting_wilson x0c/centos-vim sha256:9a746e51ff5f95dd4119a8bfebf6d678b93b0c4f0bc786bf2df61da495fc7f25 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE x0c/centos-vim latest 9a746e51ff5f 7 seconds ago 330MB centos 7 b5b4d78bc90c 2 weeks ago 203MB $ docker history 9a746e51ff5f IMAGE CREATED CREATED BY SIZE 9a746e51ff5f 43 seconds ago /bin/bash 127MB b5b4d78bc90c 2 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B <missing> 2 weeks ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B <missing> 2 weeks ago /bin/sh -c #(nop) ADD file:38e2d2a1a0cd8694b… 203MB 

以上这种方法不太提倡,最好还是通过 Dockerfile build a image,这样的 Image 更加透明,让人感觉更加安全。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM