# การใช้งาน Docker

# การแก้ไขปัญหา IP Docker ชนกับ IP ภายใน

ปัญหานี้เกิดจาก ip subnet ของ docker ซึ่งปกติ ip subnet ของ docker จะเป็น 172.17.0.0 ไปชนกับ ip subnet ภายในของมหาวิทยาลัย ซึ่งเราสามารถเปลี่ยน ip subnet ของ docker ได้โดยการใช้ docker daemon และมีขั้นตอนการติดตั้งดังต่อไปนี้

1\. หยุดการทำงานเซอร์วิสของ Docker

```
sudo service docker stop
```

2\. สร้างไฟล์ daemon.json ในโฟลเดอร์ /etc/docker

```
sudo nano /etc/docker/daemon.json
```

จากนั้นใส่ค่าของ supnet ลงไปดังต่อไปนี้

```
{
  "default-address-pools" : [
    {
      "base" : "172.240.0.0/16",
      "size" : 24
    }
  ]
}
```

3\. ใช้คำสั่งรัน docker daemon

```
sudo dockerd
```

4\. รีสตาร์ทเครื่อง

```
sudo reboot
```

ตรวจสอบ subnet ด้วยคำสั่ง sudo netstat -rn จะพบว่า subnet ถูกเปลี่ยนจาก 172.17.0.0 ไปเป็น 172.240.0.0 ดังรูป

[![image.png](https://arit-manual.nstru.ac.th/uploads/images/gallery/2023-07/scaled-1680-/BXjimage.png)](https://arit-manual.nstru.ac.th/uploads/images/gallery/2023-07/BXjimage.png)

# Tips and Trick

### การทำให้ container สามารถใช้งาน sudo ได้

```
apt-get install sudo
```

### การเข้าใช้งาน container โดยใช้ user root

```
sudo docker exec -it --user root container_name /bin/bash
```