docker使用之dockerfile手动构建镜像(三)
docker使用之dockerfile手动构建镜像
1、构建镜像
1 docker run --name mynginx -it centos #生成容器 2 yum -y install nginx 3 docker commit -m "my nginx" 596817b17b74 enjoymov/mynginx:v1 #构建镜像 4 docker run --name nginx -it enjoymov/mynginx:v1 #生成容器 5 vi /etc/nginx/nginx.conf 6 daemon off; 7 docker commit -m "my nginx" 596817b17b74 enjoymov/mynginx:v2 #构建镜像
docker run --name nginx-v2 -it -d -p 85:80 enjoymov/mynginx:v2 nginx #生成nginx环境容器,指定80端口映射到外网的85端口
2、dockerfile构建:
docker build /opt/nginx/ #指定Dockerfile的目录
- 基础镜像信息
- 维护者信息
- 镜像操作命令
- 容器启动时执行指令
dockerfile的配置文件选项:
FROM #他的妈妈是谁(基础镜像)
MAINTAINER #他的爸爸是谁,创造者的信息(维护者信息)
RUN #你想让他干什么(命令前面加RUN)
ADD #你想往他里面放什么东西(copy文件,会自动解压文件必须再当前目录)
WORKDIR #cd 命令 (当前目录)
VOLUME #给我一个存放行李的地方(挂载目录)
EXPOSE # 指定打开的端口
CMD #要执行命令的名字
创建nginx 镜像的dockerfile
vim /opt/nginx/Dockerfile
# This is docker file # version 1.0 # Author: xu chen yang # Base image FROM centos #Mainitainer MAINTAINER chenyang.xu chenyang.xu@enjoymov.com #commands RUN rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm RUN yum -y install nginx RUN echo "daemon off;" >> /etc/nginx/nginx.conf EXPOSE 80 CMD ['nginx']
使用Dockerfile构建镜像
docker build -t emov/mynginx:v3 /opt/nginx/
创建容器并在后台运行
[root@zabbix opt]# docker run --name nginx-1.3 -it -d -p 87:80 emov/mynginx:v1.3 nginx