---
# System prepended metadata

title: docker engine
tags: [資安]

---

---
tags: 資安
disqus: hackmd
---
參考網址
[在Linux作業系統安裝Docker CE](https://magiclen.org/linux-docker-ce/)

[Docker 初學筆記 - 基本指令操作教學](https://blog.longwin.com.tw/2017/01/docker-learn-initial-command-cheat-sheet-2017/)
[常用指令](https://blog.gtwang.org/linux/docker-commands-and-container-management-tutorial/)
[Container指令基礎](https://joshhu.gitbooks.io/dockercommands/content/Containers/ContainersBasic.html)
[Container run](http://www.runoob.com/docker/docker-run-command.html)
[Docker 安装 Apache](http://www.runoob.com/docker/docker-install-apache.html)

# docker engine

## 安裝
### 首先輸入以下指令，安裝缺少的套件：
```sudo apt install apt-transport-https ca-certificates curl software-properties-common```
    
### 接著再輸入以下指令，匯入Docker的GPG金鑰：
```curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -```

### 然後輸入以下指令，將Docker的repo加入至套件清單中：
```sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(cat /etc/os-release | grep UBUNTU_CODENAME | cut -d '=' -f 2) stable"```
### 輸入以下指令來更新套件庫：
```sudo apt update```
### 輸入以下指令，安裝Docker CE：
sudo apt install docker-ce
### 輸入以下指令，嘗試執行Docker官方的Hello World容器來測試Docker CE有無安裝成功：
sudo docker run hello-world
![](https://i.imgur.com/cVEVi1j.png)

這樣就是安裝成功

## 執行

### Docker 版本資訊
    docker version
    或是
    docker info
![](https://i.imgur.com/kq9h4fK.png)

### Docker 搜尋 Image
![](https://i.imgur.com/dB5qPtB.png)
放大後
![](https://i.imgur.com/aqfTZVG.png)

### Docker 抓取 Image
#### 搜尋ubuntu的img
    docker search ubuntu

#### docker pull ubuntu 抓所有 ubuntu image 回來, tag 可於後面附加上去
#### 直接抓取最新版本ubuntu
    docker pull ubuntu
#### 抓取 Ubuntu 16.04 的 
    docker pull ubuntu:16.04

### Docker 列出本地的Images
    docker images

![](https://i.imgur.com/t5ln002.png)
### Docker  Image 生成 Container (run)
[docker run詳細參數](http://www.runoob.com/docker/docker-run-command.html)
### docker run
    docker run --name ISUbuntu [image ID]
    docker run --name ubuntu16.04_test aba92edbc7a7
ubuntu16.04_test是容器的名稱
aba92edbc7a7是image ID
>生成一個叫做 ISUbuntu 的容器
### docker ps -a(查看容器運行狀況)
![](https://i.imgur.com/446daWl.png)

### Docker 啟動Container (start)
    docker start ISUbuntu
### Docker 暫停 Image 產生 Container (stop)
docker stop hash-id # 此 hash-id 由 docker ps 可找到
### 在外部向Container內執行指令(exec)
```docker exec 25a22d9d9074 ls```
![](https://i.imgur.com/mxY172m.png)
### 進去docker exec -it [container id] bash
```docker exec -it 25a22d9d9074 bash```
### 將主機/www/runoob目錄拷貝到容器96f7f14e99ab的/www目錄下。
```docker cp /www/runoob 96f7f14e99ab:/www/```
### 將主機/www/runoob目錄拷貝到容器96f7f14e99ab中，目錄重命名為www。
```
docker cp /www/runoob 96f7f14e99ab:/www
```
### 將容器96f7f14e99ab的/www目錄拷貝到主機的/tmp目錄中

```
docker cp  96f7f14e99ab:/www /tmp/
```
### 端口轉換
https://www.jianshu.com/p/b92d4b845ed6

