Docker

5.Docker 网络管理

2019-03-28  本文已影响0人  条子在洗澡
名称 版本
系统 CentOS Linux release 7.6.1810 (Core)
Docker version 1.13.1

查看docker网络

docker network list
-------------------------------------------------------
NETWORK ID          NAME                DRIVER              SCOPE
83a633e44192        bridge              bridge              local
b0efcae788f6        host                host                local
6c42f1ff8b6d        none                null                local
-------------------------------------------------------
docker network inspect bridge
[
    {
        "Name": "bridge",
        "Id": "83a633e4419213412e767ce82070234ff57f689e34bc1ee9699e660f80240358",
        "Created": "2019-03-27T03:53:28.457676544-04:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Containers": {      "6770ed441f606f3c87c666d6d986894af52cf1616cb77362be78261330121932": {
                "Name": "db",
                "EndpointID": "5191ba213ce5b7246fe61a7f4860214bc3b31b43b6ebbfdda29f5f7bb299d1e5",
                "MacAddress": "02:42:ac:11:00:04",
                "IPv4Address": "172.17.0.4/16",
                "IPv6Address": ""
            },
"71ed148515b1ad56412a4b37cb708f219827cc80442fc84f1c5585316967fc15": {
                "Name": "c1",
                "EndpointID": "cb5726a91d25c9ebc686103cca82c9369b7631a9c9ece475b89abca62ab8e3bd",
                "MacAddress": "02:42:ac:11:00:03",
                "IPv4Address": "172.17.0.3/16",
                "IPv6Address": ""
            },  "fb160b5754a1ef265f3d27fe69e657734a520d49311ea60866f6b5d530f19410": {
                "Name": "web",
                "EndpointID": "2c4aec086a20b278ccae70db3314ea39bce770b65906a3e463b85aa01713d026",
                "MacAddress": "02:42:ac:11:00:02",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            }
        }
    }
]
-------------------------------------------------------

查看,创建,删除,docker网络

#查看docker帮助
mandb  #初始化帮助文档
man -k docker
man docker-network-create
#获取到docker-network-create的参数如下
$ docker network create \
                --driver=bridge \
                --subnet=172.28.0.0/16 \
                --ip-range=172.28.5.0/24 \
                --gateway=172.28.5.254 \
                br0

#创建网络
docker network create -d bridge --subnet=10.0.0.0/24 mynet
#查看网络
docker network list
NETWORK ID          NAME                DRIVER              SCOPE
83a633e44192        bridge              bridge              local
b0efcae788f6        host                host                local
4ffa318642bf        mynet               bridge              local
#容器使用自己创建的网络
docker run --net=mynet --rm -it centos /bin/bash

#删除网络
docker network rm mynet

物理机和容器端口映射

docker run -dit --restart=always --name=db2 -p 物理机端口:容器端口 -v /db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=redhat mysql 

docker run -dit --restart=always --name=db2 -p 容器端口 -v /db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=redhat mysql (物理机端口随机分配)

练习1,通过ip 让两个容器通信

#wordpress+mysql 搭建个人论坛
#临时关闭selinux
setenforce 0
#下载镜像
docker pull hub.c.163.com/library/wordpress:latest
docker pull hub.c.163.com/library/mysql:latest
#镜像重命名
docker tag hub.c.163.com/library/wordpress wordpress
docker tag hub.c.163.com/library/mysql mysql

#创建数据容器
docker run -dit --restart=always --name=db -v /db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=redhat -e MYSQL_DATABASE=blog mysql
#查看数据库容器ip地址
docker exec -it db ip a
#创建wordpress并连接到mysql
docker run -dit --restart=always --name=blog -v /web:/var/www/html -p 80:80 -e WORDPRESS_DB_HOST=172.17.0.2 -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_PASSWORD=redhat -e WORDPRESS_DB_NAME=blog wordpress
#测试
curl ip (web容器所在的物理机ip地址)

练习2,通过容器别名绑定的方式 让两个容器通信(--link 容器别名:镜像名)

#创建数据容器
docker run -dit --restart=always --name=db -v /db:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=redhat -e MYSQL_DATABASE=blog mysql
#查看数据库容器ip地址
docker exec -it db ip a
#创建wordpress并连接到mysql(blog容器中并没有制定用户名,密码等信息,但是--link参数会将db中已经设置好的信息赋予blog容器,所以可以直接使用)
docker run -dit --restart=always --name=blog -v /web:/var/www/html -p 80:80 --link db:mysql wordpress
上一篇 下一篇

猜你喜欢

热点阅读