Scopul meu a fost asta Jenkins containerul va „vorbi” cu Ansible container pentru a crea Jenkins fisier pentru Jenkins conductă.
Eram de așteptat ca acele două containere să se „unească” la pod rețea și obțineți 2 adrese IP ale aceluiași ID de rețea, dar în schimb au fost create două rețele suplimentare, iar fiecare container a primit IP-ul de rețea diferit.
De asemenea, se aștepta ca acele două containere să aibă acces la internet.
Deci, în Windows 10 rulez Docker Desktop,
Am 2 fișiere docker-compose.yml,
Unul pentru Jenkins container:
versiunea: „3.7”
Servicii:
jenkins:
imagine: jenkins/jenkins:lts
privilegiat: adevărat
utilizator: root
porturi:
- 8080:8080
- 50000:50000
container_name: jenkins
Altul, pentru Ansible container:
versiunea: '2'
Servicii:
ansible:
container_name: ansible
nume gazdă: ansible
imagine: ansible
volume:
- ~/produs/ansible:/ansible
work_dir: /ansible
construi:
context: .
dockerfile: Dockerfile
dns:
- 200.20.200.20
Am rulat următoarea comandă pentru fiecare fișier docker-compose.yml, așa că am avut două mașini separate:
docker-compose up --build
Am inspectat detaliile rețelei containerului meu și am aflat că fiecare container are un ID de rețea diferit, vezi mai jos:
PS > docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ansible
172.18.0.2
PS > docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' jenkins
172.19.0.2
verificați secțiunea mea de rețele docker, a dezvăluit că au fost create încă 2 rețele, în plus pod, gazdă și nici unul:
PS > docker network ls
ID REȚEA NUMELE ȘOFER DOMENIUL DE APLICARE
8cefaed24885 ansible_default bridge local
44bedcd1622d pod pod local
61e1c7f7051e gazdă gazdă locală
b5a7a7a424a4 jenkins_default pod local
4e5d6c77cb5a nici unul nul local
Desigur, inspectarea pod rețeaua arată că recipient cheia este goală:
{
„Nume”: „pod”,
„Id”: „44bedcd1622d820ce4e29a5cd545f244ba2d303102f1956fe76069a63e7c220e”,
„Creat”: „2021-08-25T13:13:57.6577149Z”,
„Scope”: „local”,
„Driver”: „pod”,
„EnableIPv6”: fals,
„IPAM”: {
„Driver”: „implicit”,
„Opțiuni”: nul,
„Configurare”: [
{
„Subrețea”: „172.17.0.0/16”,
„Gateway”: „172.17.0.1”
}
]
},
„Intern”: fals,
„Atașabil”: fals,
„Ingress”: fals,
„ConfigFrom”: {
„Rețea”: „”
},
„ConfigOnly”: fals,
„Containere”: {},
"Opțiuni": {
"com.docker.network.bridge.default_bridge": "adevărat",
"com.docker.network.bridge.enable_icc": "adevărat",
"com.docker.network.bridge.enable_ip_masquerade": "adevărat",
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker0",
"com.docker.network.driver.mtu": "1500"
},
„Etichete”: {},
„CreatedTime”: 1629897237657
}
Intrebarea mea sunt:
a) De ce au fost create încă două rețele docker când am rulat docker-compose up --build
comanda?
b) Cum pot face ca acele containere să funcționeze pod rețea și obțineți IP-uri cu același ID de rețea (ID-ul rețelei bridge 172.17.x.x) pentru ca ei să vorbească între ei?