一:docker端口映射
1.随机端口映射
# 创建启动容器的时候指定端口映射
# docker run
# 参数:
# -P: 随机端口
docker run -itd --name nginx -P nginx
# //不写bash,否则nginx默认指令不会执行,nginx服务不会启动
2.指定端口映射/指定多端口映射 (推荐)
# 使用的参数
# -p : 手动指定端口
# docker run -itd
# (1) -p 宿主机端口:容器端口
# (2) -p 宿主机IP:宿主机端口:容器端口
# 找的宿主机端口是一个空闲的端口
# http协议: 使用端口: 80
# https协议: 使用端口: 443
# ssh安全无线传输协议 使用端口:22
# ftp 使用端口:21
# sftp 使用端口:22
docker run -itd --name mynginx -p 8888:80 nginx
# 多端口映射
docker run -itd --name mynginx -p 8888:80 -p 8080:443 nginx
一个IP :确定一个主机
一个端口: 确定一个进程
二:网络管理
1.网络管理相关命令
# docker network --help
# Usage: docker network COMMAND
# Manage networks
# Commands:
# connect 连接容器到指定的网络中
# create 创建一个网络
# disconnect 将容器从网络中删掉
# inspect 查看网络相关的信息
# ls 查看现有的所有网络
# prune 删除所有的未使用的网络 -> 慎用
# rm 删除一个或多个指定的网络
docker network ls
# NETWORK ID NAME DRIVER SCOPE
# 951f7f5594c9 bridge bridge local
# 1e5d47e7c511 host host local
# 713535eaeb1a none(自己搭建) null local
docker network inspect 网络名
docker network inspect mynetwork
- bridge 网络模式:虚拟出自己的网卡,有自己的网段,网关,IP,掩码
(1)创建bridge网络:
# docker network create [OPTIONS] NETWORK
# 参数:
# -d, --driver string Driver to manage the Network (default "bridge")
# --gateway strings 网关 IPv4 or IPv6 Gateway for the master subnet
# --subnet strings 网段 Subnet in CIDR format that represents a network segment
docker network create mynetwork
(2)自定义网段与网关:
docker network create --subnet 180.18.0.0/24 --gateway 180.18.0.1 mynetworktest1
docker run -itd --name xxx1 --network mynetworktest1 ubuntu bash
docker ps -a
docker inspect xxx1
docker network inspect mynetworktest1
docker run -itd --name xxx2 ubuntu bash
docker network connect mynetworktest1 xxx2
(3)在自定义网络中启动容器:
在启动容器的时候添加参数:
# --network string Connect a container to a network (default "default")
docker run -itd --name test2 --network mynet work ubunt bash
(4)容器断开网络:
# docker network disconnect [OPTIONS] NETWORK CONTAINER
docker network disconnect mynetwork test2
(5)容器连接网络:
# docker network connect [OPTIONS] NETWORK CONTAINER
# 启动一个容器的时候, 这个容器会加入到默认的网络中
# 一个容器可以同时加入到n个网络中
# 容器和容器之间要进行通信前提: 这些容器必须在同一个网络中
docker network connect mynetwork test2
删除网络:
docker network rm mynetwork
3.host网络:和宿主机共用同一个IP地址
# host网络只能有一个
# 可以在启动容器的时候, 让容器加入到host网络, 或者通过 docker network connect加入到host网络
docker run -itd --network host --name hosttest ubuntu bash
网友评论