![17b661a8ebad614d5c5898beca42b8b6.png](https://i-blog.csdnimg.cn/blog_migrate/2e0632a207de13288f45c636b4e3b8ff.jpeg)
一、自定义镜像有两种方法:
- 1、docker commit
启动一个容器,增删改查,安装软件,修改配置文件等 ; 另存为一个新镜像
docker run -it docker.io/centos 启动一个容器
yum install -y vim net-tools
ctrl+p+q 退出容器
docker ps 查看容器ID
docker commit 容器id 镜像名:标签名
- 2、编写dockerfile 文件
Dockerfile 语法格式:
FROM : 基础镜像
MAINTAINER: 镜像创建者信息
EXPOSE: 开放端口
ENV: 设置变量 (有些服务软件安装需要环境变量)
ADD: 复制文件到镜像,也可以使用wget功能
COPY: 类似于add,只不过他不支持wget
RUN: 制作镜像时执行的命令,可以有多个
WORKDIR: 定义容器默认工作目录
CMD: 容器启动执行时的命令,仅可以有一条CMD
ENTRYPOINT : 类似于cmd ,cmd 命令可以被docker run 覆盖,而他不会被覆盖,而且要比CMD或者 docker run 指定的命令要靠前执行
![00fbdd5ff5cfa1e0a128889ce2abe478.png](https://i-blog.csdnimg.cn/blog_migrate/72967f738d1de7ba92e88abf4b578abc.jpeg)
-----------------Dockerfile(1)--USER--WORKDIR指令----------------
[root@localhost docker]# mkdir /data/docker/dockerfile
[root@localhost docker]# cd /data/docker/dockerfile
[root@localhost docker]# vim dockerfile
FROM feixiangkeji974907/nginx:v1.12.2
USER nginx
WORKDIR /usr/share/nginx/html
--------------------构建镜像--------------------------
docker build -t 镜像名:标签 Dockerfile所在路径
eg : [root@localhost dockerfile]#docker build -t feixiangkeji974907/nginx:v1.12.2_with_user_workdir /data/docker/dockerfile/dockerfile
查看镜像:
[root@localhost dockerfile]# docker images
![47267be0c8f71594837db05fe85303cd.png](https://i-blog.csdnimg.cn/blog_migrate/28efdc534a91ddc6043e9a004d9fc1de.jpeg)
启动容器
[root@localhost dockerfile]# docker run --rm -it --name