#docker 如何从容器A直接访问容器B
使用network可以将多个容器连接到一起,并且相互间可以通过容器名直接访问。
问题背景
测试环境中,我们经常不使用docker-compose,而是直接使用docker run来快速启动一个容器。
当需求启动多个容器,并且相互间需要互相访问时,这种方法就不太方便了。
有没有什么方法呢,可以让两个docker容器可以相互访问,而且不需要使用ip,直接使用容器名呢?
解决方法
那就是使用network。
处于同一个network下的容器,可以直接使用容器名相互访问。
步骤
- 1). 创建network
docker network create <网络名>
- 2). 启动容器并加入对应的network
docker run --net <网络名> --name <容器名> <镜像名>
这样就可以了。
不同docker compose中的service如何连接?
同样是network
docker-compose v3.5以后,可以很方便地为network命名,然后在不同compose中使用相同的network,可以将不同文件中的service连接到一起。
用法
```yaml # 定义 networks: share-network: name: "share-network01"在service中指定
services:
service1:
image:
networks:
- share-network
<h2 id="">其他</h2>
<p>更多docker network命令,可以参考</p>
<blockquote>
<p><a href="https://docs.docker.com/engine/reference/commandline/network/">https://docs.docker.com/engine/reference/commandline/network/</a></p>
</blockquote>
<p><strong>查询已经存在的network</strong></p>
<pre><code>docker network ls
</code></pre>
<!--kg-card-end: markdown-->