一、容器间Link单向通信
经典示例:
- 对于docker来说,创建容器实在是太容易了,docker run 就能常见一个容器,每个容器都会配置一个ip地址,而且同一个镜像启动的容器的ip都是不一样的,且容器重新启动ip地址也会重新分配,
- 所以docker不会以ip地址的形式进行通信,而是给用容器名称来实现通信的
启动一个tomcat 并且取名为web
docker run -d --name web tomcat
启动一个名为database的容器
docker run -d --name database -it centos /bin/bash
在这种情况下运行的容器是可以相互通过ip地址ping通的
⚠️如何查看指定容器的ip地址呢?
docker inspect 容器id
就会得到下面👇这样的一个json字符串,找到字符串中的IPAddress
属性,对应就是该容器的ip地址
[
{
"Id": "bf7bd3deaaae529069e34827a53fd17b8ea48bb22d44c4c029b99d8acb9efd1d",
"Created": "2022-07-05T08:35:47.666345543Z",
"Path": "/bin/bash",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 33650,
"ExitCode": 0,
"Error": "",
"StartedAt": "2022-07-05T08:35:47.96586642Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6",
"ResolvConfPath": "/var/lib/docker/containers/bf7bd3deaaae529069e34827a53fd17b8ea48bb22d44c4c029b99d8acb9efd1d/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/bf7bd3deaaae529069e34827a53fd17b8ea48bb22d44c4c029b99d8acb9efd1d/hostname",
"HostsPath": "/var/lib/docker/containers/bf7bd3deaaae529069e34827a53fd17b8ea48bb22d44c4c029b99d8acb9efd1d/hosts",
"LogPath": "/var/lib/docker/containers/bf7bd3deaaae529069e34827a53fd17b8ea48bb22d44c4c029b99d8acb9efd1d/bf7bd3deaaae529069e34827a53fd17b8ea48bb22d44c4c029b99d8acb9efd1d-json.log",
"Name": "/database",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": null,
"Contai