docker容器

2020-07-12  本文已影响0人  麟之趾a

docker容器

# 运行一个容器
docker run --name t1 -it --network bridge/none/local  --rm busybox:latest
docker container run --help
-h 在启动给容器注入主机名,默认使用容器ID作为主机名
--dns 定义dns服务器
--dns-search 定义搜索域
--add-host: 自动注入host:ip 生成host文件,解析记录
docker container run --name t1 -it -h czazm --dns 223.5.5.5 --add-host www.magedu.com:1.1.1.1 --rm busybox:latest
----------------------------------------------------------------------------------------------
NAT 模式暴露容器的独立端口
-P 将所有容器监听的端口映射成主机动态的端口
-p <containerport> 将指定的容器端口映射成主机的所有地址的一个动态端口
-p <hostport>:<containerport> 将容器端口<containerport>映射成主机端口
-p <ip>::<containerport> 将指定的容器端口映射成主机指定ip的动态端口
-p <ip>:<hostport>:<containerport> 将指定的容器端口<containerport>映射至主机指定ip的端口
docker port 查看容器映射的端口
 docker port CONTAINER [PRIVATE_PORT[/PROTO]]
iptables -t nat -L 查看规则DNAT
如果一次想暴露多个端口,-p 可以使用多次,要暴露需要监听的端口

容器的联盟式网络

联盟式网络,即每个容器都有自己独立的pid,user,mount 共享net,uts,ipc
docker run --name b1 --it --rm busybox:latest
docker run --name b2 --network container:b1 --it --rm busybox:latest
b2共享b1的网络
--network host 表明共享宿主机的名称空间

在docker0上修改默认的网段

vim /etc/docker/daemon.json
{
"bip": "192.168.1.5/24" //bip: 后面有空格,不能与宿主机同一网段
}

docker C/S架构

docker 客户端通过/var/run/docker.sock 与服务端通信 
vim /etc/docker/daemon.json
{
"hosts": ["tcp://10.0.0.12:2375","unix:///var/run/docker.sock"]   //没有实验成功
}
没有实验成功,定义之后,容器服务启动不了

创建自定义桥

docker network --help
docker network create --help
 docker network create -d bridge  --subnet "172.26.0.0/16" --gateway "172.26.0.1" mybr0
[root@db02 ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
3f593b13d784        bridge              bridge              local
2dc631e2c9f6        host                host                local
5fcc8d9d01fc        mybr0               bridge              local
07c3cf7e6de4        none                null                local

同一宿主机,两个不同的网段容器进行通信,宿主机已开启核心转发,通信不了iptables规则有问题

上一篇 下一篇

猜你喜欢

热点阅读