简明 Docker 安装 Nginx
简明 Docker 安装 Nginx 教程。
一、下载 nginx 镜像
docker pull nginx
二、安装
docker run -d --name nginx --net host -v /root/project:/var/www/html -v /root/nginx:/root/nginx nginx:1.19.5
到此 nginx 安装完毕, 剩下的需要进入容器配置.
参数说明: 此处的-d
后台运行, -v 指定宿主机与容器映射的卷(valume), 将/root/nginx
链接到容器的/root/nginx
, 第二个同上. 最后的nginx
是启动容器的镜像. 下方有更多docker run
命令参数.
注意: 一般不把/root/nginx
(宿主机的 nginx 配置文件放置处)直接映射到/etc/nginx
, 这样会导致初始化容器映射卷时将/etc/nginx
清空, 会导致容器里的 nginx 程序无法启动, 因为丢失了配置文件, 上方命令是把/root/nginx
挂载到了容器的/root/nginx
, 从而避免了误删除 nginx 配置.因此还需要解决本地 nginx 配置文件与容器 nginx 配置文件映射的问题, 请看下步.
解决宿主机 nginx 配置文件与容器 nginx 配置文件映射问题
三、进入 nginx 容器配置 nginx
解决的方式如上图.
宿主机与容器的/root/nginx
已经通过卷映射, 二者的内容已经共享. 下面是对容器的修改.
- 进入 nginx 容器
- 先将
/etc/nginx
中的所有文件移动到/root/nginx
- 在使用软链接, 链接到
/etc/nginx
这样容器 nginx 配置文件就与宿主机 nginx 配置文件共享了
操作命令如下:
# 进入容器
docker exec -it nginx /bin/bash
# 这里可以先备份nginx配置文件,然后在进行移动、删除操作
mv -r /etc/nginx/* /root/nginx
rm /etc/nginx
# 创建软链接
ln -s /root/nginx /etc/nginx
其他
启动 nginx,这些都是在 nginx 容器中的操作.
systemctl start nginx
# 或者
nginx
把 nginx 设置为系统服务(容器启动 nginx 自启)
systemctl enable nginx
禁止 nginx 系统服务随系统自启
systemctl disable nginx
nginx 常用参数
# 测试nginx配置文件是否存在语法错误, 修改配置文件后一般都执行此命令做检查
nginx -t
# 停止,重读配置文件
nginx -s stop
nginx -s reload
docker run 常用参数:
- -d: 后台运行容器, 并返回容器 id
- -i: 已交互模式运行容器, 通常与-t 同时使用
- -P: 主机端口映射为容器随机端口.
- -p: 指定主机端口与容器映射的端口, 格式为: 主机端口: 容器端口
- –name: 为容器命名
- –dns 8.8.8.8 指定容器使用的 DNS 服务器, 默认和宿主及一样
- -h: 指定容器主机名
- -m: 分配最大内存
- –net 指定容器与主机网络连接方式;–net bridge: 指定容器的连接类型, 支持 bridge/host/none/container 四种; –net host 主机模式, 与主机共享端口
- –expose=[]: 开放一组端口
- -v 指定宿主机与容器映射的卷(valume)
- -t 终端交互工具 tty, 与 shell/console 的区别请移步 链接