本篇內(nèi)容介紹了“怎么在Docker容器中部署靜態(tài)網(wǎng)頁(yè)”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)公司專(zhuān)注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、禹會(huì)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁(yè)面制作、成都商城網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為禹會(huì)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
我們通過(guò)以下命令來(lái)設(shè)置:
docker run -p ip:hostport:containerport [--name] [-i] [-t] 鏡像名 [command][arg...]
ip:表示宿主機(jī)ip
hostport:宿主機(jī)端口號(hào)
containerport:容器端口號(hào)
設(shè)置的方式有以下幾種:
containerport,指定容器端口號(hào),宿主機(jī)端口隨機(jī)生成
[root@localhost ~]# docker run -p 80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash
hostport:containerport映射主機(jī)端口和容器端口
[root@localhost ~]# docker run -p 8080:80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash
ip::containerport設(shè)置主機(jī)的隨機(jī)端口到容器端口
[root@localhost ~]# docker run -p 0.0.0.0::80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash
ip:hostport:containerport映射指定地址的指定端口到容器的指定端口
[root@localhost ~]# docker run -p 0.0.0.0:8080:80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash
下面通過(guò)nginx在容器部署靜態(tài)網(wǎng)頁(yè),通過(guò)以下步驟
- 創(chuàng)建80映射端口的交互式容器
- 安裝nginx
- 安裝文本編輯器vim
- 創(chuàng)建靜態(tài)網(wǎng)頁(yè)
- 運(yùn)行nginx
- 驗(yàn)證網(wǎng)頁(yè)
示例如下(如果安裝完ubuntu后不能安裝nginx進(jìn)行apt-get update
):
[root@localhost ~]# docker run -p 80 --name static_test -i -t hub.c.163.com/library/ubuntu /bin/bash root@25fcbf6e953d:/# apt-get install -y nginx reading package lists... done building dependency tree reading state information... done e: unable to locate package nginx root@25fcbf6e953d:/# apt-get update get:1 http://archive.ubuntu.com/ubuntu xenial inrelease [247 kb] get:2 http://archive.ubuntu.com/ubuntu xenial-updates inrelease [102 kb] **中間日志省略。。。。。。。。。。** fetched 24.9 mb in 9s (2717 kb/s) reading package lists... done root@25fcbf6e953d:/# apt-get install -y nginx reading package lists... done building dependency tree reading state information... done **安裝日志省略。。。。。。。。。。**
然后安裝vim:
root@25fcbf6e953d:/# apt-get install -y vim reading package lists... done building dependency tree reading state information... done the following additional packages will be installed: **安裝日志省略。。。。。。。。。。**
然后建立存放靜態(tài)文件的目錄,并創(chuàng)建一個(gè)簡(jiǎn)單的html文件:
root@25fcbf6e953d:/# mkdir -p /var/www/html root@25fcbf6e953d:/# root@25fcbf6e953d:/# cd /var/www/html/ root@25fcbf6e953d:/var/www/html# vim index.html root@25fcbf6e953d:/var/www/html# ll total 8 drwxr-xr-x. 2 root root 53 mar 13 05:02 ./ drwxr-xr-x. 3 root root 17 mar 13 04:50 ../ -rw-r--r--. 1 root root 79 mar 13 05:02 index.html -rw-r--r--. 1 root root 612 mar 13 04:51 index.nginx-debian.html root@25fcbf6e953d:/var/www/html# cat index.htmlthis is the first docker static file
root@25fcbf6e953d:/var/www/html#
找到nginx的安裝目錄,更改default的root值為剛才創(chuàng)建的目錄:
root@25fcbf6e953d:/var/www/html# whereis nginx nginx: /usr/sbin/nginx /etc/nginx /usr/share/nginx root@25fcbf6e953d:/var/www/html# cd /etc/nginx/sites-enabled/ root@25fcbf6e953d:/etc/nginx/sites-enabled# ll total 4 drwxr-xr-x. 2 root root 20 mar 13 04:51 ./ drwxr-xr-x. 6 root root 4096 mar 13 04:51 ../ lrwxrwxrwx. 1 root root 34 mar 13 04:51 default -> /etc/nginx/sites-available/default root@25fcbf6e953d:/etc/nginx/sites-enabled# vim default
然后啟動(dòng)nginx,查看容器進(jìn)程:
root@25fcbf6e953d:/etc/nginx/sites-enabled# nginx root@25fcbf6e953d:/etc/nginx/sites-enabled# ps -ef uid pid ppid c stime tty time cmd root 1 0 0 04:48 ? 00:00:00 /bin/bash root 827 1 0 05:06 ? 00:00:00 nginx: master process nginx www-data 828 827 0 05:06 ? 00:00:00 nginx: worker process www-data 829 827 0 05:06 ? 00:00:00 nginx: worker process www-data 830 827 0 05:06 ? 00:00:00 nginx: worker process www-data 831 827 0 05:06 ? 00:00:00 nginx: worker process www-data 832 827 0 05:06 ? 00:00:00 nginx: worker process www-data 833 827 0 05:06 ? 00:00:00 nginx: worker process www-data 834 827 0 05:06 ? 00:00:00 nginx: worker process www-data 835 827 0 05:06 ? 00:00:00 nginx: worker process root 836 1 0 05:07 ? 00:00:00 ps -ef root@25fcbf6e953d:/etc/nginx/sites-enabled#
然后按ctrl+p,ctrl+q退出交互式容器。
使用docker ps
查看容器的端口和運(yùn)行情況,也可以通過(guò)dcoker port
鏡像名查看:
root@localhost ~]# docker ps container id image command created status ports names 25fcbf6e953d hub.c.163.com/library/ubuntu "/bin/bash" 18 minutes ago up 18 minutes 0.0.0.0:32772->80/tcp static_test [root@localhost ~]# docker port static_test 80/tcp -> 0.0.0.0:32772 [root@localhost ~]#
可以看到容器的80端口映射到注解的32772端口。
通過(guò)curl訪(fǎng)問(wèn)創(chuàng)建的index.html文件:
[root@localhost ~]# curl http://127.0.0.1:32772/index.htmlthis is the first docker static file
[root@localhost ~]#
也可以通過(guò)docker inspect
容器名來(lái)查看容器的詳細(xì)信息和ip
通過(guò)容器ip進(jìn)行訪(fǎng)問(wèn):
[root@localhost ~]# docker inspect static_test 其他信息省略 "ipaddress": "172.17.0.5",
[root@localhost ~]# curl http://172.17.0.5/index.htmlthis is the first docker static file
[root@localhost ~]#
當(dāng)我們使用docker stop
容器名停止這個(gè)容器后,再使用docker start
容器名啟動(dòng)容器后,里面的nginx并沒(méi)有啟動(dòng)。那么我們使用docker exec
容器名 nginx來(lái)啟動(dòng):
[root@localhost ~]# docker stop static_test static_test [root@localhost ~]# docker ps container id image command created status ports names b4f32bbe4a34 hub.c.163.com/library/ubuntu "/bin/bash" 41 hours ago up 41 hours loving_brattain d75a2d8c7822 xingguo/df_test1 "nginx -g 'daemon off" 2 days ago up 2 days 0.0.0.0:32770->80/tcp df_nginx_web 959c0fc5d903 xingguo/commit_test1 "nginx -g 'daemon off" 2 days ago up 2 days 0.0.0.0:32769->80/tcp nginx_test [root@localhost ~]# docker start static_test static_test [root@localhost ~]# docker ps container id image command created status ports names 25fcbf6e953d hub.c.163.com/library/ubuntu "/bin/bash" 29 minutes ago up 2 seconds 0.0.0.0:32773->80/tcp static_test b4f32bbe4a34 hub.c.163.com/library/ubuntu "/bin/bash" 41 hours ago up 41 hours loving_brattain d75a2d8c7822 xingguo/df_test1 "nginx -g 'daemon off" 2 days ago up 2 days 0.0.0.0:32770->80/tcp df_nginx_web 959c0fc5d903 xingguo/commit_test1 "nginx -g 'daemon off" 2 days ago up 2 days 0.0.0.0:32769->80/tcp nginx_test [root@localhost ~]# docker top static_test uid pid ppid c stime tty time cmd root 4719 4702 0 13:17 pts/2 00:00:00 /bin/bash [root@localhost ~]# docker exec static_test nginx [root@localhost ~]# docker top static_test uid pid ppid c stime tty time cmd root 4719 4702 0 13:17 pts/2 00:00:00 /bin/bash root 4800 1 0 13:18 ? 00:00:00 nginx: master process nginx amandab+ 4801 4800 0 13:18 ? 00:00:00 nginx: worker process amandab+ 4802 4800 0 13:18 ? 00:00:00 nginx: worker process amandab+ 4803 4800 0 13:18 ? 00:00:00 nginx: worker process amandab+ 4804 4800 0 13:18 ? 00:00:00 nginx: worker process amandab+ 4805 4800 0 13:18 ? 00:00:00 nginx: worker process amandab+ 4806 4800 0 13:18 ? 00:00:00 nginx: worker process amandab+ 4807 4800 0 13:18 ? 00:00:00 nginx: worker process amandab+ 4808 4800 0 13:18 ? 00:00:00 nginx: worker process [root@localhost ~]#
“怎么在Docker容器中部署靜態(tài)網(wǎng)頁(yè)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!