centos7.9用docker运行一个nginx容器

首先你的linux 系统里面已经安装好了docker,docker的安装教程看这个

1,下载nginx镜像

有很多文章会把镜像下载说成是拉取镜像,

我觉得就是下载的意思啊,搞不懂为什么要说拉取?

bash 复制代码
docker pull nginx
下载最新版 Nginx 镜像 (其实此命令就等同于: docker pull nginx:latest)
bash 复制代码
docker pull nginx:7.0.3 
下载指定版本的 Nginx 镜像 (7.0.3 指具体版本号)

2, 查看你下载好的nginx镜像

bash 复制代码
docker images

然后发现电脑里面就下到了一个nginx镜像,而且是最新版本latest

3,创建 Nginx 配置文件

bash 复制代码
创建挂载目录

mkdir -p /home/nginx/conf
mkdir -p /home/nginx/log 
mkdir -p /home/nginx/html

4,生成容器

bash 复制代码
docker run --name nginx -p 9001:80 -d nginx

docker run: 运行 Docker 容器的命令。
--name nginx:为容器指定一个名称为 nginx,方便识别和管理。
-p 9001:80:将容器的端口 80 映射到主机的端口 9001,使得可以通过主机的端口 9001 访问容器的服务。
-d:以守护进程的方式运行容器,即在后台运行。
nginx:指定要运行的镜像名称。

5, 将容器nginx.conf文件复制到宿主机

bash 复制代码
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf

这段命令使用了 Docker 的 cp 命令,用于将 Docker 容器 nginx 中的文件 /etc/nginx/nginx.conf 复制到主机的目录 /home/nginx/conf/ 下,并命名为 nginx.conf。

它的作用是在主机和 Docker 容器之间进行文件拷贝。

这个命令的执行需要满足以下条件:

Docker 容器 nginx在运行中的,

主机上存在目录 /home/nginx/conf/。

执行这个命令后,将会把容器内的指定文件复制到主机上指定的目录。

6, 将容器conf.d文件夹下内容复制到宿主机

bash 复制代码
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d

7, 将容器中的html文件夹复制到宿主机

将容器中的log文件夹复制到宿主机

bash 复制代码
docker cp nginx:/usr/share/nginx/html /home/nginx/html
c 复制代码
docker cp nginx:/usr/share/nginx/log /home/nginx/log

8,检测一下

  • A
bash 复制代码
curl 127.0.0.1:81 

发现是通的,这是在虚拟机linux的命令行窗口访问本机的81端口

  • B,再退出虚拟机,进到windows电脑上面的浏览器,输入192.168.10.128:81,发现已经进去nginx了。
    192.168.10.128是我虚拟机linux的IP,在windows上访问虚拟机Linux的81端口,因为81端口已经和容器nginx相关联了。
    所以实际上就是在访问容器nginx的80端口
  • C,打开 虚拟机linux上的 /home/nginx/html/index.html这个文件,它一开始长这样

然后我修改一点内容,如下图,

再去浏览器上访问一下,看看有啥变化

注意,

主机中的 /home/nginx/conf/nginx.conf, 和容器中的/etc/nginx/nginx.conf已经挂载绑定了

当你在 Docker 中进行文件挂载后,对主机上挂载的文件进行修改,实际上也会修改容器内对应的文件。

这意味着容器内的 /etc/nginx/nginx.conf 文件与主机上的 /home/nginx/conf/nginx.conf 文件是关联的。

一旦你在主机上修改了 /home/nginx/conf/nginx.conf文件,容器内的/etc/nginx/nginx.conf文件也会相应地发生改变。

这种文件挂载的方式提供了一种方便的机制,允许你在主机上直接修改容器内的配置文件或其他相关文件,而无需进入容器内部进行修改。

相关推荐
awonw1 分钟前
[运维][Nginx]Nginx学习(5/5)-Nginx高级
运维·学习·nginx
hong1616886 分钟前
Docker 启动和停止的精准掌舵:操控指南
docker·容器·eureka
zwm_yy6 分钟前
docker创建vue镜像
docker·vue
zwm_yy8 分钟前
Dockerfile && docker-compose
开发语言·docker
Dontla1 小时前
Docker Desktop Engine Stopped原因分析(docker桌面停止)WSL没装或没更新
运维·docker·容器
ross1 小时前
nginx 配置lua执行shell脚本
nginx·lua
小诸葛的博客2 小时前
如何使用docker启动一个gitlab
docker·容器·gitlab
oushaojun23 小时前
ubuntu中使用ffmpeg和nginx推http hls视频流
nginx·ubuntu·ffmpeg·hls
爱写Bug的小孙3 小时前
docker搭建私有的仓库
java·运维·spring boot·docker·容器
iPrologue3 小时前
自己记录docker和ES集群
elasticsearch·docker·容器