docker安装之后,默认会创建三种网络类型
NETWORK ID NAME DRIVER SCOPE
58ce5df8097f bridge bridge local
fbdb091aa759 host host local
d61897244c8f none null local
启动docker的时候,用 --network 参数可以指定网络类型
docker run -itd --name test1 --network bridge --ip 172.17.0.148 centos:latest /bin/bash
bridge:桥接网络
默认情况下启动的dokcer容器,都是使用 bridge,Docker安装时使用桥接网络,每次容器启动的时候,
会按照顺序获取对应的IP地址,这个就导致重启后dockerIp改变
none:无指定网络(有什么用)
使用这个网络类型,dokcer容器就不会分配局域网的IP
host:主机网络
使用 --network=host,此时 docker容器的网络会附属再主机上。
例如:再容器中运行一个web服务,监听了8080端口,则主机的8080端口就会
映射到容器上
创建自定义网络:(设置固定IP)
1.创建自定义网络
sudo docker network create --subnet=172.18.0.0/16 myNetWork
如果遇到:Error response from daemon: Failed to Setup IP tables:
Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait
-t nat -I DOCKER -i br-f8e39f9e8190 -j RETURN: iptables: No
chain/target/match by that name. (exit status 1))
需要重启 docker service docker restart
2.查看docker网络类型
NETWORK ID NAME DRIVER SCOPE
62323f53ba3d bridge bridge local
fbdb091aa759 host host local
950e5bcde825 myNetWork bridge local
d61897244c8f none null local
增加了一个name 为 myNetWork的类型
3.查看可用的镜像
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest 49f7960eb7e4 3 months ago 200 MB
4.创建固定ip的docker
sudo docker run -itd --name baseCentos --net myNetWork --ip 172.18.0.2 centos:latest /bin/bash
5. 进入docker
sudo docker exec -it baseCentos /bin/bash
6. 写脚本
#! /bin/bash
docker exec -it $1 /bin/bash
将脚本复制到 /bin/ 下
以后就可以直接使用 goto baseCentos 进入指定的容器了