3

[Docker] Docker之安装Nginx - 千千寰宇

 1 year ago
source link: https://www.cnblogs.com/johnnyzen/p/17439311.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

目录

1 安装步骤

Step1 下载镜像

  • 搜素、下载镜像

https://hub.docker.com/_/nginx?tab=tags
这里选择官方镜像1.22.0版本

docker search nginx
docker pull nginx:1.22.0
1173617-20230529013936849-1111649975.png
  • 查看下载的镜像
docker images

1173617-20230529014104879-1639593435.png

Step2 在宿主机创建挂载目录

用于存放默认页面、日志、配置文件,把这些文件挂载到宿主机上好处是:

在需要频繁修改Nginx配置的场景中,不需要关注容器中的数据,直接删除重建容器就好。
如果已经提前把对应nginx版本需要挂载的文件打包好了,这里直接解压放在对应的路径即可,不需要执行下面从容器复制文件的步骤。

cd /opt
tar -zxvf /opt/docker-nginx.tar.gz

没有这些文件的话,就创建目录,从容器中复制过来。

mkdir -p /opt/docker-nginx

Step3 从容器中复制要挂载的文件

先简单创建容器运行,从容器里面复制要挂载的文件到宿主机上。

  • 创建并运行容器,容器命名为nginx
docker run --name nginx -p 80:80 -d nginx:1.22.0
  • 从容器nginx中复制nginx.conf文件到宿主机
docker cp nginx:/etc/nginx/nginx.conf /opt/docker-nginx/
ls -la /opt/docker-nginx/

docker cp nginx:/etc/nginx/conf.d/ /opt/docker-nginx/conf/

docker cp nginx:/usr/share/nginx/html/ /opt/docker-nginx/html/

docker cp nginx:/var/log/nginx/ /opt/docker-nginx/logs/

复制出的docker-nginx目录结构如下图:

1173617-20230529014538336-1042910499.png

/opt目录下生成文件docker-nginx.tar.gz

cd /opt
tar -czvf docker-nginx.tar.gz /opt/docker-nginx/*
ls /opt
  • 停止、删除容器
docker stop nginx

docker rm nginx

Step4 创建并运行容器

docker run -p 80:80 \
-v /opt/docker-nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/docker-nginx/logs:/var/log/nginx \
-v /opt/docker-nginx/html:/usr/share/nginx/html \
-v /opt/docker-nginx/conf:/etc/nginx/conf.d \
-v /etc/localtime:/etc/localtime \
--name nginx \
--restart=always \
-d nginx:1.22.0

参数说明:

  • -p 映射端口,格式为“宿主机端口:容器端口”
  • -v 挂载文件
docker run -it -v /test:/soft centos /bin/bash

冒号":"前面的目录是宿主机目录,后面的目录是容器内目录
    容器目录不可以为相对路径
    宿主机目录如果不存在,则会自动生成
  • -e TZ=Asia/Shanghai 设置时区
  • --privileged=true 让容器中的root用户拥有真正的root权限
  • --name 容器名字,以后可以使用这个名字启动或者停止容器
  • --restart=always docker启动时自动启动容器
  • -d 指定要启动的镜像名

如下图,执行后返回容器id没有报Error,查看容器列表,nginx容器状态正常,则安装成功。

1173617-20230530132058660-311388386.png
docker ps -a

1173617-20230530141350631-101925135.png

Step5 浏览器访问

浏览器访问http://ip:80,可以看到nginx页面

1173617-20230530132203613-1649190521.png

如果安装失败,查看容器列表是否已有nginx容器,有的话需要删除容器后再重新创建。

X 参考文献


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK