docker容器导出镜像。docker 镜像导入。docker export,import。docker镜像的定制 电脑版发表于:2020/9/13 19:19 ## docker镜像的定制 有时候我们需要根据需求自定义镜像,自定义镜像的方式也有很多种,比如基于已有镜像创建、基于本地模板导入、基于Dockerfile创建等。Dockerfile我们有单独的介绍,这里我们就说一下其他两种 ### 基于已有镜像定制镜像 **执行命令构建** 就是在nginx:1.22 基础上添加了vim命令支持 ``` [root@docker-swarm-manager ~]# docker run -it nginx:1.22 /bin/bash root@c85659f17e9b:/# apt-get update root@c85659f17e9b:/# apt-get install -y vim root@c85659f17e9b:/# exit exit ``` 记录下这个id,等会生成镜像的时候要使用: ![](https://img.tnblog.net/arcimg/aojiancc2/e7c304e7c109486aabc3d106599b1945.png) **通过命令生成我们定制的镜像** 一些参数说明 ``` docker commit[OPTIONS]CONTAINER[REPOSITORY[:TAG]] 主要选项包括: -a,--author="":作者信息; -c,--change=[]:提交的时候执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等; -m,--message="":提交消息; -p,--pause=true:提交时暂停容器运行。 ``` 使用如下命令构建: ``` docker commit -m "added a new txt file" -a "aj" 6adcccd4f3f1 vim_nginx:latest ``` 效果如图: ![](https://img.tnblog.net/arcimg/aojiancc2/0deb04dabe12481b97c027edb6239091.png) ## docker容器导出镜像 ### export导出容器 ``` docker export -o mynginx.tar mynginx ``` 注意export导出的是容器,不是镜像 ### 导入成镜像 ``` docker import mynginx.tar aj/hasvim_nginx -m '含有vim命令的nginx' ``` 查看导入的镜像 ![](https://img.tnblog.net/arcimg/aojiancc2/6a25b14c924245eb80a25e1c6d09ef37.png) ### 运行导入的镜像 ``` docker run -d \ --name=mynginx \ -p 8002:80 \ -v /fb/wy_jbland_vue:/usr/share/nginx/html \ aj/hasvim_nginx ``` 报错:docker: Error response from daemon: No command specified. 如果出现这个错误,需要在启动容器的时候接上command命令。 **Command可以通过下面命令查询到:** ``` docker ps -a --no-trunc ``` 查询到Command之后,运行容器需要接上command即可。