直接回答:用 Docker 跑 Nginx 有两种常见做法:镜像里装好 Nginx 的适合固化环境,直接跑官方镜像再把 www、conf、logs 三个目录挂载出来,改配置不用重新构建镜像。

用 centos7 镜像装 Nginx

1.安装docker

使用yum安装docker不再重复:见 Linux常用命令

2.pull centos

  1)在docker仓库中搜索centos7镜像

1
 docker search centos

img

 2)执行docker pull centos ,拉取search到的镜像

1
docker pull centos

  3)查看本地镜像docker images是否拉取成功

1
docker images

img

  4)执行docker run 命令开启centos容器

1
docker run -tid <image_id> /bin/bash

 5)docker ps查看正在运行的容器

1
docker ps

img

 6)进入容器

1
docker exec -ti <container_id> /bin/bash

img

3.centos容器中安装nginx

  1)更新centos的yum源

1
yum update

  2)指定Nginx的yum源

1
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

  3)yum 安装nginx

1
yum install nginx

  4)查找nginx安装路径

1
find / -name nginx

  5)启动Nginx

1
/usr/sbin/nginx

  6)查看nginx是否启动成功

1
curl localhost

4.修改容器配置

 1)设置生成容器时,Nginx以非daemon启动(非后台启动)

1
echo "\n daemon off;">>/usr/local/nginx/conf/nginx.conf

  2)编写启动ssh和Nginx服务的脚本

1
2
cd /usr/local/sbin
vi run.sh

  3)脚本内容:

1
2
3
#!/bin/bash
/usr/sbin/sshd &
/usr/sbin/nginx

  这里要看nginx的课执行程序在那里,我的是安装在/usr/sbin/nginx

​ 4)改变脚本权限,使其可以运行

1
chmod 755 run.sh

将安装nginx的centos容器生成新的镜像

  1)退出容器

1
exit

  2) 将容器创建为一个新的镜像

1
docker commit -m "message" -a "Creator" container_id NewImageName

其他

  1)查看nginx进程:

1
ps -ef |grep nginx

  2)结束Nginx进程:

1
kill -9 [pid]

将镜像导出到服务器

 1)将新生成的镜像导到服务器

1
docker save -o centos1.tar.gz centos1:latest

img

1
2
3
4
5
6
7
8
docker run  --name nginx  -p 80:80 -p 443:443 \
-v $PWD:/etc/nginx/nginx.conf \
-v $PWD:/var/log/nginx \
-v $PWD:/usr/share/nginx/html \
-v $PWD:/etc/nginx/conf.d \
-v $PWD:/etc/nginx/ssl \
-e TZ=Asia/Shanghai \
--privileged=true -d nginx

挂载配置目录启动 Nginx

docker run -d -p 8080:80 --name nginx \

-v $PWD/www:/usr/share/nginx \

-v $PWD/conf:/etc/nginx/conf.d \

-v $PWD/logs:/var/log/nginx \

nginx

这篇笔记整理自我自己的实践记录,如果做法有出入,或者你踩过别的坑,欢迎到留言板一起聊聊。

站内搜索

没有找到内容!