您的位置:首页 > 运维架构 > Docker

docker部署nginx

2018-01-23 21:27 531 查看

1.下载nginx

[root@localhostmy.Shells]#dockerimages
REPOSITORYTAGIMAGEIDCREATEDSIZE
docker.io/redislatest1e70071f4af46weeksago106.7MB
[root@localhostmy.Shells]#dockerpullnginx//下载nginx
Usingdefaulttag:latest
Tryingtopullrepositorydocker.io/library/nginx...
latest:Pullingfromdocker.io/library/nginx
e7bb522d92ff:Pullcomplete
6edc05228666:Pullcomplete
cd866a17e81f:Pullcomplete
Digest:sha256:285b49d42c703fdf257d1e2422765c4ba9d3e37768d6ea83d7fe2043dad6e63d
[root@localhostmy.Shells]#dockerimages
REPOSITORYTAGIMAGEIDCREATEDSIZE
docker.io/nginxlatest3f8a4339aadd3weeksago108.5MB
docker.io/redislatest1e70071f4af46weeksago106.7MB


2.运行

[root@localhostmy.Shells]#dockerrun-p8080:80-ddocker.io/nginx//将80端口映射为8080,或者80:80还是原先的80端口,不可以不写。
c0462d5e18783e20f9515108fa62ab0f2ac808ea85370a7c82aee9407abf4672
[root@localhostmy.Shells]#netstat-anp|grep8080//端口已经开启了
tcp600:::8080:::*LISTEN2529/docker-proxy-c
[root@localhostmy.Shells]#dockerps//nginx已经在运行了
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
c0462d5e1878docker.io/nginx"nginx-g'daemonoff"4minutesagoUp4minutes0.0.0.0:8080->80/tcpangry_mccarthy


3.运行结果

[root@localhostmy.Shells]#./openFirewallPort.sh//先在防火墙上开一个端口
entertheport:
8080
success

---openFirewallPort.sh-------

echo"entertheport:"
readport
firewall-cmd--add-port=$port/tcp

下图已经成功访问到了




注意:
当docker运行nginx时,外界访问还是docker所在的那个IP地址,就相当于nginx在那台机器上运行一样。
但对于docker所在的那台机器来说,nginx就是附属于docker的一个镜像。若操作nginx还是由docker登录nginx容器,进行操作。
登录的nginx容器就是一个linux系统,只不过只有nginx而已,nginx按照linux默认路径安装。比如
root@c0462d5e1878:/usr/share/nginx/html#ls这个路径就是默认的静态页面存放路径
50x.htmlindex.html

bash命令都一样,但是vi在我机器上是不能用的,但可以使用cp、mv等命令,因为nginx都是配置好的,不能乱改。

1)可以通过在还未登录nignx容器前,把需要的文件写好,然后复制到指定目录下:
[root@localhostmy.Shells]#dockercphello.htmlc0462d5e1878://usr/share/nginx/html
[root@localhostmy.Shells]#dockerexec-itc0462d5e1878bash
root@c0462d5e1878:/usr/share/nginx/html#ls
50x.htmlhello.htmlindex.html
2)

2)通过主机目录映射到容器

dockerrun-p80:80-d-v$PWD/html:usr/share/nginx/htmldocker.io/nginx

-v$PWD/html:usr/share/nginx/html表示把当前路径下html目录映射为usr/share/nginx/html

也就是说主机下的html就是容器下的usr/share/nginx/html

html内的文件修改和添加就等同于容器usr/share/nginx/html文件操作

外网访问就可以访问得到,就不用再登录容器操作文件了





4.停止服务

[root@localhostmy.Shells]#dockerps
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
c0462d5e1878docker.io/nginx"nginx-g'daemonoff"56minutesagoUp56minutes0.0.0.0:8080->80/tcpangry_mccarthy
[root@localhostmy.Shells]#dockerstopc0462d5e1878
c0462d5e1878
[root@localhostmy.Shells]#dockerps
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES


5.重启服务

[root@localhostmy.Shells]#dockerps
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
[root@localhostmy.Shells]#dockerstartc0462d5e1878
c0462d5e1878
[root@localhostmy.Shells]#dockerps
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
c0462d5e1878docker.io/nginx"nginx-g'daemonoff"59minutesagoUp12seconds0.0.0.0:8080->80/tcpangry_mccarthy



6.再开启一个相同的服务

[root@localhostmy.Shells]#dockerrun-p8081:80-ddocker.io/nginx
//再开启一个服务,端口为8081
1fd8a0b5d138203150f1cdbfb9690235159159881785a4654abb04c7c96c5b18
[root@localhostmy.Shells]#dockerps//会有两个进程,一个8080,一个8081
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
1fd8a0b5d138docker.io/nginx"nginx-g'daemonoff"4secondsagoUp3seconds0.0.0.0:8081->80/tcpsuspicious_hypatia
c0462d5e1878docker.io/nginx"nginx-g'daemonoff"AboutanhouragoUp4minutes0.0.0.0:8080->80/tcpangry_mccarthy




上图访问的是新开启的8081服务
注意:新启动的服务和原先的服务是两个容器,原先的hello.html在新服务中是没有的


7.卸载服务

[root@localhostmy.Shells]#dockerps//此时8080和8081都在运行
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
1fd8a0b5d138docker.io/nginx"nginx-g'daemonoff"4minutesagoUp4minutes0.0.0.0:8081->80/tcpsuspicious_hypatia
c0462d5e1878docker.io/nginx"nginx-g'daemonoff"AboutanhouragoUp8minutes0.0.0.0:8080->80/tcpangry_mccarthy
[root@localhostmy.Shells]#dockerstop1fd8a0b5d138//停下8081
1fd8a0b5d138
[root@localhostmy.Shells]#dockerps//就剩8080还在运行
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
c0462d5e1878docker.io/nginx"nginx-g'daemonoff"AboutanhouragoUp9minutes0.0.0.0:8080->80/tcpangry_mccarthy
[root@localhostmy.Shells]#dockerps-a//可以看到8080在运行,8081已经Exited
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
1fd8a0b5d138docker.io/nginx"nginx-g'daemonoff"5minutesagoExited(0)7secondsagosuspicious_hypatia
c0462d5e1878docker.io/nginx"nginx-g'daemonoff"AboutanhouragoUp9minutes0.0.0.0:8080->80/tcpangry_mccarthy
[root@localhostmy.Shells]#

[root@localhostmy.Shells]#dockerrm1fd8a0b5d138//移除这个进程进行了,注意运作着的进程是无法rm的,要先stop
1fd8a0b5d138
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: