docker - 在 docker 中链接容器(RancherOS 和命令行)

标签 docker rancher docker-link

  • 我运行 RancherOS 来运行 docker 容器
  • 我在 GUI 上创建了一个容器来运行我的数据库(图片:mysql,名称:r-mysql-e4e8df05)。不同的容器使用它。
  • 我可以在 GUI 上将其他容器链接到它 enter image description here
  • 这次我想在 jenkins 上自动创建和启动一个容器,但链接工作不正常

我的命令:

docker run -d --name=app-that-needs-mysql --link mysql:mysql myimages.mycompany.com/appthatneedsmysql

我得到错误:

Error response from daemon: Could not get container for mysql

我尝试了不同的方法:
1)

--link r-mysql-e4e8df05:mysql

错误:

Cannot link to /r-mysql-e4e8df05, as it does not belong to the default network

2)
尝试使用 --net 选项
运行:docker network ls

NETWORK ID          NAME                DRIVER              SCOPE
c..........e        bridge              bridge              local
4..........c        host                host                local
c..........a        none                null                local
  • 使用 --net none 它成功了,但实际上它不起作用。应用无法连接到数据库
  • 使用--net host 错误消息冲突选项:主机类型网络不能与链接一起使用。这将导致未定义的行为
  • 使用--net bridge 错误消息:无法链接到/r-mysql-e4e8df05,因为它不属于默认网络

我还检查了运行此 mysql 的 rancher GUI: enter image description here

它得到一个 continer IP 开始于:10.X.X.X

我也尝试过添加 --net managed 但错误:network managed not found

我想我想念这个 docker 链接过程中的一些东西。 请给我一些想法,我怎样才能使这些工作。
(以前当我创建相同的容器并链接到 GUI 中的 mysql 时它正在工作)

最佳答案

嘿@Tomi,你可以在任何你喜欢的端口上从 rancher 公开 mysql 容器。这样你就不必链接容器,然后你的 Jenkins 产生的容器连接到主机上暴露端口上的容器。您还可以使用 rancher cli 使用 jenkins 在 rancher 中启动容器。这样一来,您就不必在主机网络上使用 mysql 了……一些用 Rancher 剥皮的方法。

关于docker - 在 docker 中链接容器(RancherOS 和命令行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49273718/

相关文章:

php - 带有 Symfony 和 PHP-FPM 的 NGINX SSI

namespaces - Rancher - 是否可以在新环境中启动/重新创建一个环境中可用的整个命名空间

docker - 容器在docker-compose中无法在网络中通信

在virtualbox中的ubuntu上安装docker,无法提取图像

mysql - 在 MySQL Docker 容器中包含数据

docker - 项目 namespace 中的rancher 2.0网络

kubernetes - 使用Rancher 2.1.7旋转Kubernetes证书

docker - 当外部链接的容器实际上正在使用docker-compose运行时,如何避免 “Docker cannot link to a non running container”错误

amazon-web-services - 我可以通过挂载目录向 sbt-native-packager 构建的本地 Docker 容器提供 AWS 凭证吗