Docker 安装 Nginx
Docker 安装 Nginx
docker pull nginx 命令安装
查找 Docker Hub 上的 nginx 镜像:
docker search nginx
这里我们拉取官方的镜像
docker pull nginx
等待下载完成后,我们就可以在本地镜像列表里查到 REPOSITORY 为 nginx 的镜像
docker images nginx
以下命令使用 Nginx 默认的配置,来启动一个 Nginx 容器实例
docker run --name nginx-test1 -p 8081:80 -d nginx
nginx-test1
:
容器名称-d:
设置容器在后台一直运行-p:
端口进行映射,将本地 8081 端口映射到容器内部的 80 端口(host port:container port)
执行以上命令会生成一串字符串,类似 13afb35cbc98ebd8ad451f0fda9bec24e814916c1e929b89363e7ca92c1746eb,这个表示容器的 ID,一般可作为日志的文件名。
我们可以使用 docker ps 命令查看容器是否有在运行:
docker ps
PORTS 部分表示端口映射,本地的 8081 端口映射到容器内部的 80 端口。
在浏览器中打开 http://机器IP:8081/,效果如下:
nginx 部署
首先,创建目录 nginx, 用于存放后面的相关东西:
mkdir -p ./nginx/www ./nginx/logs ./nginx/conf
拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录,容器 ID 可以查看 docker ps 命令输入中的第一列:
docker cp 13afb35cbc98:/etc/nginx/nginx.conf ./nginx/conf
- www: 目录将映射为 nginx 容器配置的虚拟目录
- logs: 目录将映射为 nginx 容器的日志目录
- conf: 目录里的配置文件将映射为 nginx 容器的配置文件
部署命令
docker run -d -p 8081:80 --name nginx-web-test -v /opt/miracleTest/nginx/www:/usr/share/nginx/html -v /opt/miracleTest/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /opt/miracleTest/nginx/logs:/var/log/nginx nginx
或者
docker run -d -p 8081:80 --name nginx-web-test -v $PWD/nginx/www:/usr/share/nginx/html -v $PWD/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v $PWD/nginx/logs:/var/log/nginx nginx
此命令中的机器目录要是全路径!!
命令说明:
-
-p 8081:80: 将主机的 8081 端口 映射到 容器的 80 端口
-
--name nginx-web-test:将容器命名为 nginx-web-test
-
-v $PWD/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html
-
-v $PWD/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf
-
-v $PWD/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx
启动以上命令后进入 ./nginx/www 目录:
cd $PWD/nginx/www
创建 index.html 文件,内容如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Docker Nginx</title> </head> <body> <h1>我的第一个标题: Docker Nginx</h1> <p>我的第一个段落: Hello, Nginx.</p> </body> </html>
刷新页面,输出结果为:
相关命令
如果要重新载入 Nginx 可以使用以下命令发送 HUP 信号到容器
docker kill -s HUP container-name
停止 Nginx 容器命令:
docker stop container-name
启动 Nginx 容器命令:
docker start container-name
重启 Nginx 容器命令:
docker restart container-name
PS: