容器时相互隔离的,docker启动的nginx是容器内的服务,不影响原先我的nginx服务。
1、下载nginx镜像
2、查看下载的镜像
3、启动nginx镜像
docker run -d —name nginx01 -p 3344:80 nginx(镜像名或者镜像id)
4、查看启动的nginx
5、访问启动的ngixn
linux开放防火墙端口
阿里云服务器需要配置安全组规则
原理
端口暴露,linux端口映射到容器端口
0.0.0.0:3344->80/tcp
6.进入nginx容器
docker exec -it 0a7ebd6bc291 /bin/bash
root@0a7ebd6bc291:/# ls
bin boot dev docker-entrypoint.d docker-entrypoint.sh etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@0a7ebd6bc291:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx
root@0a7ebd6bc291:/# cd /etc/nginx/
root@0a7ebd6bc291:/etc/nginx# ls
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
root@0a7ebd6bc291:/etc/nginx#
问题探索
每次改动nginx配置,都需要进入容器内部修改,十分麻烦,能否在容器外部提供一个映射路径,达到修改配置文件,容器内部就会自动修改?
数据卷技术
nginx.conf配置文件,注意Nginx默认是后台运行的,但Docker需要其在前台运行,否则直接退出容器。配置文件中添加daemon off;关闭后台运行。可以通过Dockerfile配置CMD命令实现