# Docker Network 指令
### 主講人:黃夙賢
---
## Docker指令

---
## Docker指令概覽
- docker image
- docker container
- docker volume
- <font color=red>docker network</font>
---
## Docker Network 如何將容器連上網路
- 每個容器的網卡是eth0,每一個新增容器,會新增一個veth介面
- 透過vethxx介面,跟聯外網卡docker0連線
- 再透過docker0跟真正的實體網卡eth0往外連
- 我們可以自己新增docker network來取代docker0,來控制容器間的對外連線。
---

---
## 瀏覽網路介面
- ip addr,或者ip ad
- 可看到docker預設網路卡docker0

---
```
docker run -d --name web tutum/apache-php (執行一個apache-php容器)
docker ps
docker exec -it web bash (進入web的bash介面)
ip addr (觀察目前web容器使用的network介面,有個eth0虛擬網卡)
exit
```

---
```
ip addr (web容器使用的veth128e25c網路介面)
docker rm –f web
ip addr (刪除容器web後,veth128e25c也消失了)
```

---
## Docker Network Create新增介面
- 透過新增的docker network來連接不同的容器
```
docker network ls (查詢目前有哪些docker network介面)
docker network create mybridge(新增mybridge網路介面)
docker network ls (查詢是否建立成功)
ip addr
```

---

---
## 建立一個利用Mybridge串連的Mysql + phpmyadmin的應用
- mysql是網路常用的免費資料庫
- phpmyadmin是mysql常用的網路管理介面
---
```
docker run -d --network mybridge --name db -p 3306:3306 -e MYSQL\_ROOT\_PASSWORD=abc1234 mysql
(建立一個密碼為abc1234的mysql)
docker ps
docker run -d --network mybridge --name myadmin -p 80:80 phpmyadmin
(建立一個phpmyadmin)
```

---
- http://localhost:8080
- id:root
- pwd:abc1234

---
{"metaMigratedAt":"2023-06-17T18:27:27.591Z","metaMigratedFrom":"YAML","title":"Docker Network 指令","breaks":true,"contributors":"[{\"id\":\"ef0225b9-6c2a-4012-82c9-fa1031d2c4db\",\"add\":3149,\"del\":1426}]"}