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文件也会相应地发生改变。

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

相关推荐
运维全栈笔记12 小时前
K8S部署Redis高可用全攻略:1主2从3哨兵架构实战
redis·docker·云原生·容器·架构·kubernetes·bootstrap
Jinkxs12 小时前
LoadBalancer- 主流负载均衡工具盘点:Nginx / Haproxy / Keepalived 基础介绍
运维·nginx·负载均衡
SCBAiotAigc14 小时前
2026.5.1:`DockerDesktop must be owned by an elevated account`错误的解决办法
人工智能·docker·具身智能
AI木马人14 小时前
9.人工智能实战:GPU 服务如何上 Kubernetes?从单机部署到 K8s + NVIDIA Device Plugin + HPA 的生产级改造
人工智能·容器·kubernetes
ReaF_star15 小时前
【安全】SSL证书更新操作手册(Nginx+Cloudflare+acme.sh)
nginx·安全·ssl
云动课堂17 小时前
【运维实战】Nginx 高性能Web服务 · 一键自动化部署方案 (适配银河麒麟 V10 / openEuler / CentOS 7/8)
运维·前端·nginx
身如柳絮随风扬21 小时前
使用 Docker 部署禅道并实现自动化部署——从项目搭建到运维自动化的完整指南
运维·docker·自动化
eRTE XFUN1 天前
docker下搭建redis集群
redis·docker·容器
一只小bit1 天前
Docker 存储卷:本地文件与容器内部文件建立绑定关系
运维·docker·容器
都在酒里1 天前
在公共服务器上构建 RK3588 SDK 的纯净 Docker 方案
运维·服务器·docker