Docker(四)Image、Container

一、Image镜像

Docker把应用程序及其依赖,打包在image文件里面。只有通过这个文件,才能生成Docker容器。image文件可以看作是容器的模板。Docker根据image文件生成容器的实例。同一个image文件,可以生成多个同时运行的容器实例。注意image文件是只读的

二、Image的获取

  • 第一种方式:Build from Dockerfile
  • 第二种方式:Pull from Registry

三、Image基本命令

docker image ls -> 查看当前docker service中的所有image

docker history [IMAGE ID] -> 查看该image的分层

docker run [IMAGE NAME | IMAGE ID] -> 创建新的容器并运行command,这个command是image中的CMD命令

注意:docker run ubuntu会默认运行latest版本,docker run ubuntu:14.04会运行指定版本

四、Container容器

  • container是通过image创建的
  • 在image layer(只读)之上建立了一个container layer(可读、可写)
  • image负责App的储存和分发,container负责运行App

五、Container基本命令

docker container ls -> 列出当前正在运行的container
docker container ls -a -> 列出所有状态的container(包括正在运行的、已经退出的)

注意:使用docker run [IMAGE NAME]命令运行容器,容器执行完command后会直接退出。

交互式运行容器的命令:docker run -it [IMAGE NAME]

例如:
这里写图片描述
可以看到进入到了操作系统里面了,也就是说现在产生了一个up状态的container。

docker container stop [CONTAINER ID] -> 退出容器

docker container rm [CONTAINER ID] -> 移除容器

docker rm [CONTAINER ID] -> 移除容器(简化命令),效果同上

dokcer container ls -aq -> 列出所有containerId

docker rm $(docker container ls -aq) -> 批量移除container

docker rm $(docker container ls -f 'status=exited' -aq) -> 按过滤条件’status=exited’,批量删除container

六、构建自己的镜像

场景:centos镜像中没有安装vim,现在需要制作一个基于centos镜像并安装好vim的镜像。

  • first,新建一个Dockerfile文件,里面的内容如下:
# 表示base image为centos,如果没有base image那么需写成FROM scratch 
FROM centos
RUN yum install -y vim
  • second,利用build命令构建镜像:
docker build -t cherry-peng/centos-vim-new .

-t后面参数表示镜像的名称和tag,tag不写默认latest
.为Dockerfile文件的PATH参数,即表示当前目录下的Dockerfile。

猜你喜欢

转载自blog.csdn.net/xsp_happyboy/article/details/80168312