Docker网络和端口映射

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chenbetter1996/article/details/86608133

网络模式

Docker有三种网络模式:
1. Bridge(默认) : 桥接,Docker会虚拟出个网卡,独立IP、端口,故需要做端口映射
2. Host: 使用宿主机的网卡IP端口
3. None:Docker不和外界通讯


端口映射

默认是Bridge模式,一些容器需要端口映射,比如Nginx, Tomcat等

➜ ~ docker run --help

可以看到
-d, --detach Run container in background and print container ID
-p, --publish list Publish a container’s port(s) to the host
-P, --publish-all Publish all exposed ports to random ports


➜ ~ docker run -d -p 8080:80 nginx
c9df7673d41d8f244154d075d9c643d782964cecab41d48fdc4d9f28d7d91cfa

此时就可以宿主机 localhost:8888 打开nginx容器主页

-d指定是后台模式执行(对应的还有交互模式),并回显容器ID
-p(小写)是自定义端口映射,前面的是宿主机的端口,后面的是容器端口


先停止,改用 -P 随机映射端口

➜ ~ docker stop c
c
➜ ~ docker run -d -P nginx
b44095998288cbccaed927d8af6585867989941a5be4cf3804346a65982b7f2e

容器ID可以只打前几个字母,只要能标志即可。完整的ID是64位16进制数,但是使用基本都是取前12位。
-P是映射容器的所有端口到宿主机的随机端口

➜  ~ docker ps    
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                   NAMES
b44095998288        nginx               "nginx -g 'daemon of…"   6 minutes ago       Up 6 minutes        0.0.0.0:32768->80/tcp   confident_elbakyan

可以看到随机把宿主机的32768端口映射到了容器的80端口。宿主机 localhost:32768可以看到首页。

猜你喜欢

转载自blog.csdn.net/chenbetter1996/article/details/86608133