0、先创建一个文件夹img
mkdir img
1、Linux上新建3个文件
2、文件内容分别写入
(1)Dockerfile中
# 基于的基础镜像centos FROM centos # 维护该镜像的用户信息 MAINTAINER The CentOS Project<cloud-ops@centos.org> # 镜像中的操作指令:安装apache软件包 RUN yum -y update RUN yum -y install httpd # 开启镜像中的80端口 EXPOSE 80 # 复制网址首页文件 ADD index.html /var/www/html/index.html # 将执行脚本复制到镜像中 ADD run.sh /run.sh RUN chmod 775 /run.sh # 启动容器时执行脚本 CMD ["/run.sh"]
(2)index.html中
web test
(3)run.sh中
#!/bin/bash rm -rf /run/httpd/* exec /usr/sbin/apachectl -D FOREGROUND
说明:
rm -rf /run/httpd/* 清理httpd的缓存
exec /usr/sbin/apachectl -D FOREGROUND 启动apache服务
3、使用Dockerfile生成镜像
docker build -t httpd:centos .
-t 指定镜像标签
后面就会使用刚才编写的Dockerfile自动创建生成镜像。
可以看到整个创建过程中,每运行一次Dockerfile中的指令,都会给初始镜像加上新的一层。
4、使用新的镜像运行容器
docker run -dit -p 49180:80 httpd:centos
运行此命令前:先检查
(1)docker images 新建镜像是否存在
(2)netstat -an |grep 49180 宿主机中端口49180是否被占用,如果端口被占用就换一个端口号
注意:80端口是容器中的端口,不用管
运行此命令后:检查
docker ps -a
看看该容器是否在运行(up)
5、防火墙开放宿主机的端口49180
firewall-cmd --zone=public --list-ports firewall-cmd --zone=public --add-port=49180/tcp --permanent firewall-cmd --reload
6、浏览器访问
ip:49180