docker 安装nginx,设置目录挂载

linux 专栏收录该内容
13 篇文章 0 订阅

这里采用Dockerfile  来构建自己的nginx 镜像

mkdir mynginx 新建一个目录

touch Dockerfile新建一个Dockerfile

vim Dockerfile 并加入如下命令

FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html

这个 Dockerfile 很简单,一共就两行涉及到了两条指令:FROM 和 RUN,FROM 表示获取指定基础镜像,RUN 执行命令,在执行的过程中重写了 nginx 的默认页面信息,将信息替换为:Hello, Docker!。

在 Dockerfile 文件所在目录执行:

docker build -t nginx:v1 .

命令最后有一个. 表示当前目录,标签为v1

docker images 

查看所有镜像,v1的这个就是你的

接下来使用 docker run 命令来启动容器

docker run  --name docker_nginx_v1   -d -p 80:80 nginx:v1

这条命令会用 nginx 镜像启动一个容器,命名为docker_nginx_v1,并且映射了 80 端口,这样我们可以用浏览器去访问这个 nginx 服务器:http://192.168.0.54/,页面返回信息:

 

修改容器内容

容器启动后,需要对容器内的文件进行进一步的完善,可以使用docker exec -it xx bash命令再次进行修改,以上面的示例为基础,修改 nginx 启动页面内容:

docker exec -it docker_nginx_v1   bash
root@3729b97e8226:/# echo '<h1>Hello, Docker neo!</h1>' > /usr/share/nginx/html/index.html
root@3729b97e8226:/# exit
exit

以交互式终端方式进入 docker_nginx_v1 容器,并执行了 bash 命令,也就是获得一个可操作的 Shell。然后,我们用<h1>Hello, Docker neo!</h1>覆盖了 /usr/share/nginx/html/index.html 的内容。

再次刷新浏览器,会发现内容被改变。

修改了容器的文件,也就是改动了容器的存储层,可以通过 docker diff 命令看到具体的改动。

 

设置文件挂载目录

docker 容器不支持vim 编辑,修改起来比较麻烦,可以设置文件挂载目录,把容器的目录挂载到宿主机上,这样直接修改宿主机的就行了

例如:

run --name mynginx -p 80:80 -v /opt/nginx/data/html:/usr/share/nginx/html -d nginx:v1

 

其中 -v /opt/nginx/data/html:/usr/share/nginx/html

就是把容器的/usr/share/nginx/html 目录挂载到 /opt/nginx/data/html

注意需要先在宿主机上创建这个目录,然后把容器上的该目录下的文件复制过来

可以用docker cp docker_nginx_v1:/usr/share/nginx/html  /opt/nginx/data/html

docker ps  查看运行的镜像

docker stop 2af1 停掉镜像

docker run --name mynginx -p 80:80 -v /opt/nginx/data/html:/usr/share/nginx/html -d nginx:v1

修改宿主机的html页面刷新网页会发现也变了

 

 

 

 

 

 

  • 1
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

安然无Yangon

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值