首页 文章

是否可以使用docker compose复制Kubernetes容器网络环境?

提问于
浏览
0

Kubernetes有一个pods的概念,容器可以在它们之间共享端口 . 例如,在同一个pod中,容器可以通过 localhost:80 访问另一个容器(侦听端口80) .

但是在docker-compose上, localhost 指的是容器本身 .

无论如何在docker上实现kubernetes网络配置?

基本上我有一个kubernetes配置,我想在docker-compose配置中重用,而不必修改图像 .

3 回答

  • 0

    我似乎已经通过在docker-compose配置中的每个容器配置中添加 network_mode: host 来实现它 .

  • 0

    是的你可以 . 你运行一个服务然后你可以使用 network_mode: service:<nameofservice>

    version: '3'
    
    services:
      mainnetwork:
        image: alpine
        command: tail -f /dev/null
      mysql:
        image: mysql
        network_mode: service:mainnetwork
        environment:
          - "MYSQL_ROOT_PASSWORD=root"
      mysqltest:
        image: mysql
        command: bash -c "sleep 10 && mysql -uroot -proot -h 127.0.0.1 -e 'CREATE DATABASE tarun;'"
        network_mode: service:mainnetwork
    

    Edit-1

    所以 network_mode 可以有以下可能的值

    • 主持人

    • service :(同一个撰写文件中的servicename)

    • container :(已经运行的外部容器的名称或ID)

    在这种情况下,我使用了 service:mainnetwork ,因此主网络需要启动 .

    此外,这已在 Docker 17.06 ce 上测试过 . 所以我假设您使用的是更新版本

  • -1

    使用Docker Links机制,您可以将容器连接在一起,然后通过localhost可以使用声明的端口 .

相关问题