使用almalinux基础镜像创建nginx镜像
一、创建基础镜像
使用almalinux:latest镜像构建nginx镜像,启动容器时,nginx自动启动
创建基本文件
cd ~
mkdir dockernginx
cd dockernginx/
echo 'nginx s running!!!' >> index.html
vi Dockerfile
编辑dockerfile文件内容
FROM almalinux:latest
MAINTAINER "smartaiops<smartaiops@126.com>"
RUN yum clean all && yum -y install epel-release
RUN yum -y install nginx
ADD index.html /usr/share/nginx/html/
RUN echo "daemon off;" >> /etc/nginx/nginx.conf #取消nginx以daemon身份运行
EXPOSE 80
CMD /usr/sbin/nginx
## 如果为centos系统安装此插件
yum-plugin-ovl
保存退出构建镜像
docker build -t almalinux-nginx:v1 .
构建完成使用docker images 查看构建的镜像
启动容器
创建容器在后台运行,无需交互或通过exec进入交互页面
docker run -d --name nginx -p 80:80 almalinux-nginx:v1
docker exec -it nginx /bin/bash
创建容器并在后台运行,退出容器后容器停止运行
docker run -it --name nginx -p 80:80 almalinux-nginx:v1 /bin/bash
docker ps -a
docker inspect nginx
docker stop nginx && docker rm nginx
二、创建挂载到本机的nginx配置文件
拷贝配置文件到本机
# 在当前目录下创建目录 conf,我的当前目录是/root/nginx
mkdir conf
# 拷贝容器内nginx默认配置文件到当前目录下
docker cp nginx:/etc/nginx/nginx.conf $PWD/conf
docker cp nginx:/etc/nginx/nginx.conf.default $PWD/conf
docker cp nginx:/etc/nginx/conf.d $PWD/conf
# 完成拷贝后,停止删除容器,重启一个容器关联配置文件
docker stop nginx # 停止容器
docker rm nginx # 删除容器
# 创建html目录 存放静态资源
mkdir html
# 创建logs目录 保存访问日志
mkdir logs
cp /root/dockernginx/index.html ./index.html.bak
mv /root/dockernginx/index.html ./html/index.html
重新运行docker容器
通过以下命令创建nginx容器
docker run -d -p 8099:80 \
--name nginxapp \
-v /root/dockernginx/html:/usr/share/nginx/html \
-v /root/dockernginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/dockernginx/conf/conf.d:/etc/nginx/conf.d \
-v /root/dockernginx/logs:/var/log/nginx \
almalinux-nginx:v1
-d 表示容器在后台运行,防止退出容器后,容器被停止或删除
-p 8099:80 映射本机8099端口到容器的80端口
--name nginxapp 设置容器名称为nginxapp
-v 将本地文件挂载到容器的指定目录