拉取nginx
[root@wangazure ~]# docker pull nginx:1.18.0 #拉取nginx 1.18.0: Pulling from library/nginx f7ec5a41d630: Pull complete 0b20d28b5eb3: Pull complete 1576642c9776: Pull complete c12a848bad84: Pull complete 03f221d9cf00: Pull complete Digest: sha256:e90ac5331fe095cea01b121a3627174b2e33e06e83720e9a934c7b8ccc9c55a0 Status: Downloaded newer image for nginx:1.18.0 docker.io/library/nginx:1.18.0 [root@wangazure ~]# docker images #查看所有镜像 REPOSITORY TAG IMAGE ID CREATED SIZE redis 6.2.6 7614ae9453d1 4 weeks ago 113MB nginx 1.18.0 c2c45d506085 9 months ago 133MB
[root@wangazure ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE redis 6.2.6 7614ae9453d1 4 weeks ago 113MB nginx 1.18.0 c2c45d506085 9 months ago 133MB [root@wangazure ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@wangazure ~]# docker run -p 8082:80 -d --restart=always --name nginx01 nginx:1.18.0 #-p映射端口(服务器端口 :容器端口) -d 后台运行,--restart=always跟着docker服务启动(自启动),--name nginx01起别名nginx01,最后是镜像名称或者id都可以 77379630b3295ea20d156ccfeca49d05db3b7b5b92197e84dc6f5d6c67f7b338 [root@wangazure ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 77379630b329 nginx:1.18.0 "/docker-entrypoint.…" About a minute ago Up About a minute 0.0.0.0:8082->80/tcp, :::8082->80/tcp nginx01 [root@wangazure ~]#
访问浏览器8082端口,有nginx页面,可以
其中nginx.conf的配置文件在容器里/etc/nginx目录下
root@e4365b27da62:/etc/nginx# ls conf.d fastcgi_params koi-utf koi-win mime.types modules nginx.conf scgi_params uwsgi_params win-utf root@e4365b27da62:/etc/nginx# pwd /etc/nginx root@e4365b27da62:/etc/nginx#
要想用自己的配置文件启动nginx,就要先启动一个nginx容器,从里面拷贝出来一份配置文件(nginx.conf)
我这里放的位置是服务器上的目录是(/root/nginx/nginxconf)
[root@wangazure ~]# mkdir /root/nginx [root@wangazure ~]# mkdir /root/nginx/nginxconf [root@wangazure ~]# docker cp nginx01:/etc/nginx/nginx.conf /root/nginx/nginxconf #把容器里的配置文件复制到/root/nginx/nginxconf里 [root@wangazure ~]# ls install.sh nginx [root@wangazure ~]# cd nginx/ [root@wangazure nginx]# cd nginxconf/ [root@wangazure nginxconf]# ls nginx.conf [root@wangazure nginxconf]#
用自定义的配置文件启动nginx
[root@wangazure ~]# docker run -p 8082:80 -d --restart=always --name nginx01 -v /root/nginx/nginxconf/nginx.conf:/etc/nginx/nginx.conf nginx:1.18.0 ac282b2280f702f6d29db78b3cd17bb9029f08b802af287bba7fed709b2b2a98 [root@wangazure ~]#
[root@wangazure ~]# docker run -p 8082:80 -d --restart=always --name nginx01 -v /root/nginx/nginxconf/nginx.conf:/etc/nginx/nginx.conf nginx:1.18.0 1c3934a1943263294459ad09d6491d787aecb7603dd37e1bdf7a50df9589c6ee [root@wangazure ~]# docker exec -it nginx01 bash #进入容器 root@1c3934a19432:/# find / -name index.html #查找html的路径 find: '/proc/1/map_files': Operation not permitted find: '/proc/29/map_files': Operation not permitted find: '/proc/30/map_files': Operation not permitted find: '/proc/36/map_files': Operation not permitted /usr/share/nginx/html/index.html root@1c3934a19432:/#
关闭容器,再启动容器(第二个-v是把服务器下的/root/nginx/nginxhtml和容器的/usr/share/nginx/html同步)
[root@wangazure ~]# docker rm -f nginx01 nginx01 [root@wangazure ~]# docker run -p 8082:80 -d --restart=always --name nginx01 -v /root/nginx/nginxconf/nginx.conf:/etc/nginx/nginx.conf -v /root/nginx/nginxhtml:/usr/share/nginx/html nginx:1.18.0 a075f34bd445cffeba91fdc07923d6082c2081e8cbff419b36be18b63badfc90 [root@wangazure ~]#
这就用上了
自定义index.html
一定要切换到刚才创建的/root/nginx/nginxhtml/目录里
[root@wangazure ~]# cd nginx/nginxhtml/ [root@wangazure nginxhtml]# ls [root@wangazure nginxhtml]# vim index.html <html> <body> <p>hello docker nginx!!!</p> </body> </html>
刷新浏览器,就可以看到自己写的index.html,不用重启镜像。
以后静态资源就放这儿(/root/nginx/nginxhtml/)就好了。
未完待续······