---
# System prepended metadata

title: 雲端通訊整合實務(9/29)
tags: [docker]

---

# 雲端通訊整合實務(9/29)
###### tags: `docker`

# docker 指令
查看docker版本資訊
```
docker info
```
查詢dockerhub內所有的下載包
```
docker search [名稱]
```
執行busybox鏡像容器，並查詢網路資訊
```
docker run -it busybox:latest sh
```
![](https://i.imgur.com/up7iTJf.png)

執行容器並且印出"hello world"
```
docker run -it busybox:latest echo "hello world"
```
![](https://i.imgur.com/uAj6eZD.png)

# 測試1
1. **測試簡單的C語言程式**

下載gcc
```
docker pull gcc
```
創建存放C語言的資料夾
```
mkdir -p /data
```
執行程式
```
gcc -o hello hello.c
```
> -o:output

2. **測試簡單的python語言程式**

下載python相關套件
```
docker pull codenvy/python27
docker pull rackspacedot/python37
```
執行python
```
python hello.py
```
# 測試2
安裝httpd，並測試網頁伺服器的方法
```
docker pull httpd
```
1. 
```
docker run -itd --name myweb -p 8080:80 httpd
```
> 8080(虛擬機對應的埠):80(httpd埠號)
2. 
* httpd埠號可以對應不同的容器，例如：
```
docker run -itd --name myweb2 -v /myweb:/usr/local/apache2/htdocs -p 8081:80 httpd
```
3. 
```
docker run -itd --name myweb3 -p 8082:80 httpd
```
若想更改網頁伺服器的內容，可以使用：
```
docker cp index.html myweb3:/usr/local/apache2/htdocs
```
> 若出現網頁伺服器開不了，可以嘗試進入容器
```
docker exec -it myweb2 bash
```
想要保存對容器的修改，可以使用：
```
docker commit [容器ID] cf337188/myweb3:v1 
```
4. 
```
docker run -itd --name myweb4 -p 8083:80 cf337188/myweb3:v1
```
# 容易搞混的 docker 用法
## 1. 如何產生Image?
- docker commit
- Dockerfile

## 2. 進入容器的用法： 
![](https://i.imgur.com/7AQfRWY.png)


## Reference
1. [上課影片](https://drive.google.com/drive/folders/1oM_ejAeSIhGbDGAVBDnVRv4DuoXaDwYw?usp=sharing)