> For the complete documentation index, see [llms.txt](https://anida-huang.gitbook.io/cloud-communication/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anida-huang.gitbook.io/cloud-communication/qi-zhong/chu-shi-docker.md).

# 20200915 初識 Docker

## 課堂資料

### 安裝 Docker

#### **SET UP THE REPOSITORY**

{% tabs %}
{% tab title="設置存儲庫" %}

```
yum install -y yum-utils
```

```
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
```

{% endtab %}

{% tab title="更新" %}

```
yum install epel-release -y 
```

-y：同意
{% endtab %}

{% tab title="安裝套件庫" %}

```
yum install epel-release -y 
```

{% endtab %}
{% endtabs %}

#### **INSTALL DOCKER ENGINE**

> **安裝DOCKER引擎**

```
yum install docker-ce docker-ce-cli containerd.io
```

![SET UP THE REPOSITORY](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MIMPC2tIvOJQmWxGAse%2F-MIMiKvlmDlTv8wt3RYL%2F12.jpg?alt=media\&token=e52a3d7f-fb1d-4d77-a4f9-d77b94f0253a)

![INSTALL DOCKER ENGINE](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MIMPC2tIvOJQmWxGAse%2F-MIMiFDxjiQTBw11XZEa%2F13.jpg?alt=media\&token=04b97ce1-d2d2-46ea-8140-71256a0c212a)

#### 驗證 DOCKER

```
docker --version
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MINs7WZ8C7ARXug17fq%2F-MINtmUmMHkFXpkGoe7-%2F15-1.jpg?alt=media\&token=9c240a93-23c5-4e14-ab51-a4d5b410a1a2)

#### 啟動 DOCKER

```
systemctl start docker
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MINs7WZ8C7ARXug17fq%2F-MINtquHugKydlbu-0uv%2F15-2.jpg?alt=media\&token=4fbc1ac0-2567-41d2-8607-7d3829eb1151)

## 課堂練習

#### 讓 VM2 ( 第二台虛擬機 ) 透過 VM1 ( 第一台虛擬機 ) 進行廣告阻擋

{% hint style="success" %}

### 安裝 **adg**uard 步驟

{% endhint %}

### **1. Pull the Docker image**

> **拉出Docker映像**

```
docker pull adguard/adguardhome
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MINs7WZ8C7ARXug17fq%2F-MINswNbaKqHU2i93zQX%2F14.jpg?alt=media\&token=bd0c638d-73c4-440c-9a02-01b87b703358)

### **2. Create directories for persistent configuration and data**

> **創建用於持久配置和數據的目錄**

```
mkdir -p /my/own/workdir

mkdir -p /my/own/confdir
```

> 檢查

```
netstat -tunlp | grep 68
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MISA-7UXYUC_Z60gDxR%2F-MISCbnjKdAvhyhiXIAi%2F18.jpg?alt=media\&token=aed58cf5-7450-49b4-9532-92220d1a4b7f)

> 刪除

```
kill -9 7178
kill -9 4235
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MISA-7UXYUC_Z60gDxR%2F-MISD58Fb65r6LCk-_kJ%2F19.jpg?alt=media\&token=8091b39a-990e-40de-8473-1f6e27415823)

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MISA-7UXYUC_Z60gDxR%2F-MISD2SUv3RCvcWUVZYB%2F20.jpg?alt=media\&token=9adca81f-fd18-4532-9ec8-c299b8c6d4aa)

{% hint style="danger" %}
刪除後記得再次檢查
{% endhint %}

> 檢查

```
netstat -tunlp | grep 67
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MISA-7UXYUC_Z60gDxR%2F-MISDK_n_ktp_wHcvNVM%2F21.jpg?alt=media\&token=2db8e0d5-13e2-4183-90f4-38f04f29a9cb)

> 刪除

```
kill -9 1849
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MISA-7UXYUC_Z60gDxR%2F-MISDu1QOFtV0KomDAoX%2F22.jpg?alt=media\&token=2e61b077-cad4-467e-a900-edcc11cff894)

{% hint style="danger" %}
刪除後記得再次檢查
{% endhint %}

> 檢查

```
netstat -tunlp | grep 53
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MISA-7UXYUC_Z60gDxR%2F-MISE8czBKSn3t6oULnv%2F24.jpg?alt=media\&token=523e89d6-0756-46c4-b091-ebe7f2fe7f01)

> 檢查

```
docker ps -a
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MISA-7UXYUC_Z60gDxR%2F-MISESUbuLktObmHb1L4%2F25.jpg?alt=media\&token=52adc726-1273-4e3b-a14a-2dbddde99e3e)

> 刪除

```
docker rm c0a
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MISA-7UXYUC_Z60gDxR%2F-MISEfA9lQbUAzS92EVl%2F26.jpg?alt=media\&token=ef176324-adb6-41ac-a6c2-b6aa993a320b)

### **3. Create and run the container**

> **創建並運行容器**

```
docker run --name adguardhome -v /my/own/workdir:/opt/adguardhome/work -v /my/own/confdir:/opt/adguardhome/conf -p 53:53/tcp -p 53:53/udp -p 67:67/udp -p 68:68/tcp -p 68:68/udp -p 80:80/tcp -p 443:443/tcp -p 853:853/tcp -p 3000:3000/tcp -d adguard/adguardhome
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MISA-7UXYUC_Z60gDxR%2F-MISEng8NvjI9MIUSM-Q%2F27.jpg?alt=media\&token=cc84e440-2429-4e82-ba17-f22c75dc6478)

{% hint style="danger" %}

#### 若是沒通到網路

{% endhint %}

### 連網測試

> 進入 resolv.conf，新增 namesever 8.8.8.8

```
vim /etc/resolv.conf
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MIwft5NgkNNdDtbHs43%2F-MIwoXmULsuuQOwNikCs%2F31.jpg?alt=media\&token=2771babb-f362-4e0a-b9dd-08757b22e9cf)

> 進行連網測試

```
ping www.google.com
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MIwft5NgkNNdDtbHs43%2F-MIwpxXQDeoQuLngkrn_%2F32.jpg?alt=media\&token=a8ec31fd-243c-4bdd-8886-8a0711ebaa9e)

> 安裝註冊完ADguard會跳出儀表版畫面

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MJGjBCBxr9FmGfTKQ8K%2F-MJH1CFyZkPO4AP0M0lk%2F33.jpg?alt=media\&token=c047a18e-4f13-4515-878a-3e666737eb90)
