linux虚拟目录 容器 挂载,Docker 中安装 Ngnix,启动 Nginx 主机目录挂载到容器

查找Docker Hub上的nginx镜像

docker search nginx

NAME DESCRIPTION STARS OFFICIAL AUTOMATED

nginx Official build of Nginx. 13492 [OK]

jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1841 [OK]

richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 780 [OK]

linuxserver/nginx An Nginx container, brought to you by LinuxS… 122

bitnami/nginx Bitnami nginx Docker Image 87 [OK]

……

这里我拉取官方的镜像

docker pull nginx

# 等待下载完成后,就可以在本地镜像列表里查到REPOSITORY为nginx的镜像。

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

nginx latest 0901fa9da894 10 days ago 132MB

使用nginx镜像

先运行容器,让 nginx 创建默认配置

docker run -p 8081:80 --name mynginx -d nginx

然后,在主机(自己定合适的路径)创建目录 nginx, 用于存放后面的相关东西。

# 首先,创建目录 nginx, 用于存放后面的相关东西。

mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf ~/nginx/conf.d

# 容器 ID 可以用 docker ps 命令查看:

docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

42960466a6ce nginx "/docker-entrypoint.…" 41 seconds ago Up 40 seconds 0.0.0.0:8081->80/tcp mynginx

# 42960466a6ce 就是ID

# 拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录

docker cp 42960466a6ce:/etc/nginx/nginx.conf ~/nginx/conf

# 拷贝容器内 Nginx 默认配置文件夹 conf.d 到本地当前目录下的 nginx 目录

docker cp 42960466a6ce:/etc/nginx/conf.d ~/nginx

# 如果需要测试验证,可以拷贝 index.html

docker cp 42960466a6ce:/usr/share/nginx/html/index.html ~/nginx/www

默认文件准备完成,下面部署 新的 nginx,并映射主机目录

www: 目录将映射为 nginx 容器配置的虚拟目录。

logs: 目录将映射为 nginx 容器的日志目录。

conf: 目录里的配置文件将映射为 nginx 容器的配置文件。

conf.d: 目录里的配置文件将映射为 nginx 容器的配置文件。

部署命令

docker run -d -p 8082:80 --name nginx-8082 -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/conf.d:/etc/nginx/conf.d -v ~/nginx/logs:/var/log/nginx nginx

命令说明:

-p 8082:80: 将容器的 80 端口映射到主机的 8082 端口。

--name nginx-8082:将容器命名为 nginx-8082。

~/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。

-v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。

-v ~/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。

启动以上命令后进入 ~/nginx/www 目录,跟换目录下的内容为自己的网站内容:

cd ~/nginx/www

ls

# 以下是我的测试网站内容

index-1.html index.html

到此,已经可以访问 http://宿主机IP:8082 站点了。