前言
一般我们在访问容器时需要通过容器的端口来访问,那如何设置容器的端口映射呢?
我们通过以下命令来设置:
docker run -p ip:hostPort:containerPort [--name] [-i] [-t] 镜像名 [COMMAND][ARG...]
- ip:表示宿主机ip
- hostPort:宿主机端口号
- containerPort:容器端口号
设置的方式有以下几种:
containerPort,指定容器端口号,宿主机端口随机生成
[root@localhost ~]# docker run -p 80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash
hostPort:containerPort映射主机端口和容器端口
[root@localhost ~]# docker run -p 8080:80 --name web_test -i -t 80864d42dd23 hub.c.163.com/library/ubuntu /bin/bash
ip::containerPort设置主机的随机端口到容器端口
[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
下面通过nginx在容器部署静态网页,通过以下步骤
- 创建80映射端口的交互式容器
- 安装nginx
- 安装文本编辑器vim
- 创建静态网页
- 运行nginx
- 验证网页
示例如下(如果安装完ubuntu后不能安装nginx进行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: **安装日志省略。。。。。。。。。。**
然后建立存放静态文件的目录,并创建一个简单的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.html <html> <body> <h1> this is the first docker static file </h1> </body> </html> root@25fcbf6e953d:/var/www/html#
找到nginx的安装目录,更改default的root值为刚才创建的目录:
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
然后启动nginx,查看容器进程:
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 "htmlcode">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端口。
通过curl访问创建的index.html文件:
[root@localhost ~]# curl http://127.0.0.1:32772/index.html <html> <body> <h1> this is the first docker static file </h1> </body> </html> [root@localhost ~]#也可以通过
docker inspect
容器名来查看容器的详细信息和ip
通过容器ip进行访问:
[root@localhost ~]# docker inspect static_test 其他信息省略 "IPAddress": "172.17.0.5",[root@localhost ~]# curl http://172.17.0.5/index.html <html> <body> <h1> this is the first docker static file </h1> </body> </html> [root@localhost ~]#当我们使用
docker stop
容器名停止这个容器后,再使用docker start
容器名启动容器后,里面的nginx并没有启动。那么我们使用docker exec
容器名 nginx来启动:[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 "color: #ff0000">总结以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对的支持。
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 英雄联盟六个龙魂是哪六个 英雄联盟六个龙魂介绍一览
- 《忆蚀》Subliminal:揭秘后室之谜,路知行献声Weplay文化展
- 初始之部制作人气漫画改编游戏《我家大师兄脑子有坑》参展2024WePlay
- 《异环》「奇点测试」定档11.28 超自然都市轻喜剧即将放送!
- 16层乐队.2024-大快朵颐【摩登天空】【FLAC分轨】
- 群星.1988-电视金曲巡礼【EMI百代】【WAV+CUE】
- 群星.1992-电视金曲巡礼VOL.2【EMI百代】【WAV+CUE】
- 廖昌永《情缘HQ》头版限量[低速原抓WAV+CUE]
- 蔡琴《老歌》头版限量编号MQA-24K金碟[低速原抓WAV+CUE]
- 李嘉《国语转调》3CD[WAV+CUE]
- 谭咏麟《爱的根源 MQA-UHQCD》2022头版限量编号 [WAV+CUE][1G]
- 江洋 《江洋原创琵琶作品专辑》[320K/MP3][118.08MB]
- 江洋 《江洋原创琵琶作品专辑》[FLAC/分轨][228.33MB]
- 《战舰世界》语音包文件夹位置介绍
- 《CSGO》送好友皮肤方法介绍