docker容器互联

一丶使用IP+端口

  1. 创建容器
    docker run --name nginx01 --restart always  -d  nginx:1.21-alpine
    docker run --name nginx02 --restart always  -d  nginx:1.21-alpine
  2. 查看容器IP
    docker exec -it nginx01 ip a
    docker exec -it nginx02 ip a
  3. 进入容器验证互访
    1)进入nginx01 curl请求nginx02
    docker exec -it nginx01 sh

    2)进入nginx02 curl请求nginx01
    docker exec -it nginx02 sh
  4. 模拟nginx01容器IP变更
    docker rm -f nginx01
    docker run --name nginx01 --restart always   -d  nginx:1.21-alpine
    docker exec -it nginx01 ip a
  5. 验证nginx02访问nginx01
  6. 总结
    由于容器重启或删除IP会变更,所以IP+端口的访问是不可靠的。

二丶使用别名(link)

  1. 创建容器
    docker run --name nginx01 --restart always   -d  nginx:1.21-alpine
  2. 创建link
    docker run --name nginx02 --restart always  --link=nginx01:www.nginx01.com   -d  nginx:1.21-alpine
  3. 查看容器IP
    docker exec -it nginx01 ip a
    docker exec -it nginx02 ip a
  4. 进入nginx02访问别名
    docker exec -it nginx02 sh
    curl http://www.nginx01.com:80
  5. 模拟变更docker ip

     vim /etc/docker/daemon.json
    "bip":"172.180.0.1/16",

     systemctl restart docker

  6. 查看容器IP
  7. 再次进入nginx02访问别名
  8. 总结
    容器互联使用别名的方式访问是可靠的,适合无缝迁移场景。
posted @ 2022-04-09 16:22  awks  阅读(69)  评论(0)    收藏  举报