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 站点了。

 

 

你可能感兴趣的:(Docker,Linux,nginx)