本来想着直接用docker pull nginx下载nginx镜像,但由于项目中使用fastdfs作为文件服务器,需要在nginx中添加fastdfs-nginx-module模块,所以就使用默认安装的方式创建nginx镜像。
1.下载CentOS镜像
docker pull centos
[root@file nginx]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos latest 9f38484d220f 4 months ago 202MB
2.使用centos镜像启动容器
docker run -itd --name nginx centos:centos7 /bin/bash
3.进入nginx容器
docker exec -it 69a3991a5fb6 /bin/bash --69a3991a5fb6为容器id
4.在容器中安装nginx
安装环境:yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
下载nginx:wget -c https://nginx.org/download/nginx-1.12.1.tar.gz
解压:tar -zxvf nginx-1.12.1.tar.gz
进入目录:cd nginx-1.12.1
使用默认配置:./configure
编译:make
安装:make install
设置nginx以非daemon启动:echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
5.编写nginx启动脚本
cd /usr/local/sbin
vi run.sh
添加内容
#!/bin/bash
/usr/local/nginx/sbin/nginx
6.改变脚本权限,使其可以运行:
chmod 755 run.sh
exit退出容器
7.根据容器id生成镜像:
docker commit -a "suxlin" -m "nginx images" 1b212636e9b6 nginx:latest --1b212636e9b6容器id
[root@file nginx]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest b2d8591975ac About an hour ago 435MB
8.通过nginx镜像启动容器
docker run -di --name nginx -p 8080:80 nginx /usr/local/sbin/run.sh
网友评论