> 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/20200929-ying-xiang-yu-cang-ku-er.md).

# 20200929 映像與倉庫 (二)

## 課堂資料

### None

## 課堂練習

### Part 01.

{% tabs %}
{% tab title="/home/user" %}

```
docker search httpd
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOSqpvP-UdJE0kXufzM%2F-MOT0U53s7_O5e_daBl7%2Fimage.png?alt=media\&token=90268ebd-9684-41e6-9282-eb557d32348f)

```
docker login
```

```
docker pull centos
```

```
docker images
```

```
cd
```

```
systemctl start sshd
```

{% hint style="success" %}
開啟 PuTTY
{% endhint %}

```
docker pull rackspacedot/python37
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOYBHu3c7vzYv6U5zvz%2Fimage.png?alt=media\&token=0027bfa5-82fb-4c48-b456-e3b1d22ddbd3)
{% endtab %}

{% tab title="/var/lib/docker" %}

```
cd /var/lib/docker
```

```
cd image
```

```
cd overlay2
```

```
docker images
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOY0RZFXpRpDLxUxGk_%2Fimage.png?alt=media\&token=f50046bb-1dd4-4576-a320-06d42ad79a90)

```
docker run -it busybox:latest sh
```

```
ifconfig
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOY0hee2z6gddC55_2X%2Fimage.png?alt=media\&token=e3777c84-4323-41e2-a5d6-0387d3f177d8)

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

```
exit
```

```
docker ps -a
```

```
docker run -it busybox:1 echo "hello world"
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOY2zNjlzTE06BkNh64%2Fimage.png?alt=media\&token=f0ecfa97-0511-4fb6-922d-ebf55ed5050a)

```
docker pull gcc
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOY4cRiRdlNNAawGWtw%2Fimage.png?alt=media\&token=7a81562b-bbaa-4a69-b5d6-39d023b89f0b)

```
docker run -it -v /data:/data gcc:latest bash
```

```
cd /data
```

```
cat hello.c
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOY8IO41qvLM7FaQR9Z%2Fimage.png?alt=media\&token=edf27d2e-1eab-4b4e-a309-5b62efeb4194)

```
gcc -o hello hello.c
```

```
exit
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOY9udvaDurNH9ajPOD%2Fimage.png?alt=media\&token=ba425b5f-0a60-4f7b-94f4-0fc6bd6d1f99)

```
docker pull codenvy/python27
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOYB3Yi6veIemN0lcjz%2Fimage.png?alt=media\&token=21ca13a7-933b-4dff-b639-7bc171068cf7)
{% endtab %}

{% tab title="PuTTY" %}

```
mkdir -p /data
```

```
cd /data
```

```
vim hello.c
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOY5VsZ7dtZbzmVY53V%2Fimage.png?alt=media\&token=8c9bbec0-81c8-48eb-b4b2-f2747b21bf03)

```
#include <stdlib.h>
#include <stdio.h>

int main(){
    printf("hello world\n");
    return 0;
}
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOY6otNdWFqHg2_Xz-_%2Fimage.png?alt=media\&token=1bc8e78e-cf1b-4a92-b1ee-5098a3d91943)

```
./hello
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOY9bPQ05s06ehx7pKq%2Fimage.png?alt=media\&token=28da17c2-23dc-4372-862e-86e9e435826c)

```
vim p2.py
```

```
[Service]

print "hello world"
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOYCCNxxQzLv6eHcpED%2Fimage.png?alt=media\&token=5808e12c-3df8-4acf-9d2c-6e2601283a80)

```
vim p3.py
```

```
print ("hello world")
```

```
cat p2.py
```

```
cat p3.py
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOYCtFaTFIXy_mTsqxm%2Fimage.png?alt=media\&token=1c92e404-db8c-4a89-b293-b078e492a71d)
{% endtab %}
{% endtabs %}

> #### 一次就可以刪除已經不在執行的容器

```
docker rm -f `docker ps -a -q`
```

{% hint style="danger" %}
`docker rmi`要確保沒有任何相關容器正在運行
{% endhint %}

### Part 02.

```
docker run -it --rm busybox:latest echo "hello"
```

```
cd /data
```

```
mkdir -p /myweb
```

```
cd /myweb
```

```
echo "hello world" > index.html
```

```
docker run -itd --name myweb1 -p 8080:80 httpd
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOYFRZ8EndFEjuAJ62i%2Fimage.png?alt=media\&token=c21480ff-9ceb-4ea1-bdeb-44529a5f7fd7)

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOYFzvT2TDDUECEaVXV%2Fimage.png?alt=media\&token=f0fa9b6c-d676-4d6d-9547-0b19298004b6)

```
docker run -itd --name myweb2 -v /myweb: docker run -it --rm busybox:latest echo "hello" -p 8080:80 httpd
```

```
docker run -itd --name myweb2 -v /myweb:/usr/local/apache2/htdoc -p 8080:80 httpd
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOXxAFZXIpSbcsNhH2h%2F-MOYHQrJuDWlZxGO5QfI%2Fimage.png?alt=media\&token=b69d3464-6186-4003-89c7-cf95dc759826)

```
docker run -itd --name myweb3 -v /myweb:/usr/local/apache2/htdoc -p 8080:80 httpd
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOYHlAMCuOmyTW7XbQR%2F-MOYISj77huerv-sNHRS%2Fimage.png?alt=media\&token=0cfa6353-b2b2-494e-ab73-edac2854d30e)

```
docker exec -it myweb3 bash
```

```
cd htdoc
```

```
cat index.html
```

```
exit
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOYHlAMCuOmyTW7XbQR%2F-MOYIx0hAoqZJQXy9kGn%2Fimage.png?alt=media\&token=5eb54102-bc29-4ada-8e4f-36705ccf5095)

```
docker rm -f myweb3
```

```
docker run -itd --name myweb3 -v /myweb:/usr/local/apache2/htdocs -p 8081:80 httpd
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOYKwGvGD33KizLHSj4%2F-MOYNyqT1tLoUuRiAgO7%2Fimage.png?alt=media\&token=1ba465c2-c6f7-4504-95f1-828b8b8f5833)

### Part 03.

```
docker run -itd --name myweb4 -p 8082:80 httpd
```

```
cd /myweb
```

```
docker cp index.html myweb4:/usr/local/apache2/htdocs
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOZxL_-fcwfzfaOj5xL%2F-MO_-zhUEKkJu4oDVt5b%2Fimage.png?alt=media\&token=1d074dd4-1c4c-4c86-b176-bd9e6217be53)

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOZxL_-fcwfzfaOj5xL%2F-MO_0BbmlWWyF-epzO7X%2Fimage.png?alt=media\&token=a6185e4a-e3bb-4f22-aee7-1fba3ffcfc2a)

```
docker commit [容器ID] [xiaoji850312/鏡像名稱]:v1
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOZxL_-fcwfzfaOj5xL%2F-MO_3HtU1Pp5xUqy4fHs%2Fimage.png?alt=media\&token=567e244e-a6de-47a0-a687-9b608b19a762)

```
docker run -itd --name myweb5 -p 8083:80 xiaoji850312/myweb4:v1
```

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOZxL_-fcwfzfaOj5xL%2F-MO_4hpo4i5dUGoCRgq6%2Fimage.png?alt=media\&token=29207a00-9df6-4657-8b3d-26a3220f98d4)

![](https://483685739-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHFSfnhkNCUTnJ2hcGc%2F-MOZxL_-fcwfzfaOj5xL%2F-MO_4bScfrhuzcWsUY0f%2Fimage.png?alt=media\&token=08fc100d-7821-4113-b93e-4ef2c8292c5c)

```
docker ps
```

```
docker attach [容器ID]
```
