docker部署nginx
2023-12-14 19:15:06
(1)获取nginx镜像
1、查看nginx版本
- 1、选择版本,可以去docker hub,搜索```nginx``
? 点击tags
,可以看到历史版本
- 2、或通过命令查看Nginx镜像
docker search nginx
输出:
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 19341 [OK]
unit Official build of NGINX Unit: Universal Web … 19 [OK]
nginxinc/nginx-unprivileged Unprivileged NGINX Dockerfiles 138
(2)下载Nginx镜像
使用命令docker pull nginx
默认为下载最新版(latest)
docker pull nginx
也可以下载指定版本1.20.1
docker pull nginx:1.20.1
查看下载到本地的镜像文件
docker images
(3)启动nginx容器(简单版)
创建一个名为 “nginx” 的容器,并将容器内的端口 80 映射到主机的端口 8080。
格式:docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
docker run --name nginx -p 8080:80 -d nginx
这个命令的缺陷主要有以下几点:
- 缺乏挂载卷:该命令没有使用
-v
参数来挂载容器内的数据卷或文件。这意味着容器内的数据(例如网站文件、日志文件等)将无法持久化保存。当容器被删除或重新创建时,所有的数据都会丢失。 - 缺少自定义配置:该命令没有提供自定义的 Nginx 配置文件。默认情况下,Nginx 容器将使用其内部的默认配置。如果你需要自定义 Nginx 的配置,例如修改虚拟主机或代理设置等,你需要编辑容器内的配置文件,或者使用挂载卷将自定义的配置文件传递给容器。
- 缺少容器重启策略:该命令没有指定容器的重启策略。默认情况下,容器在退出时不会自动重启。如果你希望容器在发生故障或主机重启后自动重启,你可以使用
--restart
参数来设置适当的重启策略。 - 使用最新的 Nginx 镜像:该命令使用的是
nginx
镜像,但没有指定具体的版本号。默认情况下,Docker 将使用最新的可用版本。这意味着在将来重新创建容器时,可能会使用一个不同的版本,导致行为和配置的变化。
(4)启动nginx容器(实际应用版)
1、创建挂载目录
mkdir -p /data/docker/nginx/conf
mkdir -p /data/docker/nginx/log
mkdir -p /data/docker/nginx/html
2、关于容器与主机之间互传文件
(1)将上面创建简单版nginx容器文件,拷贝到主机,命令格式:docker cp 【容器id】:容器目录 本地目录
# 将容器nginx.conf文件复制到宿主机
docker cp nginx:/etc/nginx/nginx.conf /data/docker/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp nginx:/etc/nginx/conf.d /data/docker/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp nginx:/usr/share/nginx/html /usr/local/nginx/
docker cp
:用于在容器和主机之间复制文件或目录的命令。nginx:/etc/nginx/nginx.conf
:指定了容器内的文件路径,这里是容器名为 “nginx” 的容器中的/etc/nginx/nginx.conf
文件。/data/docker/nginx/conf/nginx.conf
:指定了主机上的目标文件路径,这里是将文件复制到/data/docker/nginx/conf/nginx.conf
。
PS:以下这条命令不用执行,只是作为备注如何传输文件
3、将主机文件拷贝到容器目录,格式:docker cp 本地目录 【容器id】:容器目录
#把外面的内容复制到容器里面
docker cp /data/conf/nginx.conf 【容器id】:/etc/nginx/nginx.conf
/data/conf/nginx.conf
:指定了主机上的源文件路径,这里是将主机上的/data/conf/nginx.conf
文件复制到容器内。【容器id】:/etc/nginx/nginx.conf
:指定了容器内的目标文件路径,这里是容器的 ID(或名称)为【容器id】
的容器中的/etc/nginx/nginx.conf
文件。
本命令跳过,执行以下命令。
4、启动容器命令:
docker run -d -p 8090:80 \
-v /data/docker/nginx/html:/usr/share/nginx/html:ro \
-v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/docker/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/docker/nginx/log:/var/log/nginx \
--restart=always \
--name mynginx-02 \
nginx
启动容器命令的详细解释:
docker run
:运行一个新的容器。-d
:以后台模式运行容器。-p 8090:80
:将容器内的端口 80 映射到主机的端口 8090。这样可以通过主机的端口访问 Nginx 服务。-v /data/docker/nginx/html:/usr/share/nginx/html:ro
:使用卷挂载功能,将本地目录/data/docker/nginx/html
挂载到容器内的/usr/share/nginx/html
目录,并设置为只读(ro
)。这样可以将自定义的 HTML 文件挂载到 Nginx 容器,用于网站内容的展示。-v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
:使用卷挂载功能,将本地文件/data/docker/nginx/conf/nginx.conf
挂载到容器内的/etc/nginx/nginx.conf
文件。这样可以使用自定义的 Nginx 配置文件。-v /data/docker/nginx/conf/conf.d:/etc/nginx/conf.d
:使用卷挂载功能,将本地目录/data/docker/nginx/conf/conf.d
挂载到容器内的/etc/nginx/conf.d
目录。这样可以挂载自定义的 Nginx 配置文件片段。-v /data/docker/nginx/log:/var/log/nginx
:使用卷挂载功能,将本地目录/data/docker/nginx/log
挂载到容器内的/var/log/nginx
目录。这样可以将 Nginx 的日志文件存储到本地目录。--restart=always
:设置容器在退出时自动重启。--name mynginx-02
:为容器指定一个名称,这里是 “mynginx-02”。nginx
:基于 Nginx 镜像运行容器。
5、访问测试
写入一个html文件,访问测试
[root@localhost ~]# vim /data/docker/nginx/html/index.html
写入:
Hello world
输入IP+端口访问:http://你的IP:端口/
文章来源:https://blog.csdn.net/qq_39689711/article/details/134931597
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!