一、网路模式

在Docker中,总共有3种网络模式,通过以下命令查看:

$ sudo docker network list

NETWORK ID     NAME      DRIVER    SCOPE
4d8410464028   bridge    bridge    local
64c12c1db079   host      host      local
859695aea76e   none      null      local

二、端口映射

容器运行后,默认用的是网桥模式。而网桥模式下,每个容器都有自己独立的IP地址,所以外部服务没法直接访问到容器中的某个服务,所以需要使用端口映射,将宿主机的某个端口与容器中的某个端口进行映射,在外部服务访问宿主机的某个端口(比如3306)时,通过端口转发到容器的某个端口(比如3306)。命令格式为:

$ docker run -d -p [宿主机端口]:[容器端口] --name [container name] [image]

比如我们将宿主机的8000端口,与容器的80端口映射,命令如下:

# 只映射一个端口
$ docker run -d -p 8000:80 --name mynginx nginx
# 映射多个端口
$ docker run -d -p 8000:80 -p 5000:443 --name mynginx nginx

Untitled

还有另外一种映射的参数-P ,是将容器中使用expose暴露的端口在宿主机上采用一个随机端口与之映射,这种映射方式在实际工作中用得比较少。