Dokcer-容器化世代你必須要知道 Right Now
Docker簡介
-
環境上不統一的問題? 請用 Docker!!!
-
每次建立環境都快抓狂的問題? 請用 Docker!!!
-
想要高效率、輕量、秒開的環境,請用 Docker!!!
-
不想搞死自己,請用 Docker!!!
-
想潮到出水,請一定要用 Docker!!!
什麼是 Docker
Docker 是一個開源專案,出現於 2013 年初,最初是 Dotcloud 公司內部的 Side-Project。
它基於 Google 公司推出的 Go 語言實作。( Dotcloud 公司後來改名為 Docker )
我們先來看看官網的說明
Comparing Containers and Virtual Machines ( 傳統的虛擬化 )
從這張圖可以看出 Containers 並沒有 OS ,容量自然就小,而且啟動速度神快( 詳細請看官網說明,連結請點我 )
Feauture | Containers | Virtual Machines |
---|---|---|
啟動 | 秒開 | 最快也要分鐘 |
容量 | MB | GB |
效能 | 快 | 慢 |
支援數量 | 非常多Containers | 10多個就很了不起了 |
複製相同環境 | 快 | 超慢 |
一張圖讓你心花怒放
*那~~~為什麼我們要用Docker呢???
因為..很潮,非常潮,潮到出水
- Docker小百科
- Image 映像檔,當作在VM上面玩Ubuntu的作業環境(但是並非完整的作業系統)
- Container 容器,利用映像檔(Image)所創造出來的,一個Image可以創造出多個不同的Container
Container 也可以被啟動、開始、停止、刪除,並且環境互相隔離(最棒的一點)。
- Registry 可以想像成一個很大的倉庫,存放很多很多的Images,可於官網查詢(https://hub.docker.com/)
Windows環境安裝Docker
Windows缺乏Docker Container所需Linux系統下的友善環境,故使用Dokcer有兩種方式:
- 一. 安裝 Docker Desktop on Windows(條件限制):
- Windows 10 64位元,專業版、企業版及教育版
- 支援 Hyper-V 以及 Containers Windows
- 二.安裝 Docker Toolbox on Windows(推薦方式):
- 在 Windows 10 安裝 Git 以及 VirtualBox
- 並透過Git bash操作虛擬機運行Docker Container
一、安裝 Git
-
1.同意License並選擇下一步
-
2.使用預設路徑
-
3.GUI圖形化建議不勾選
-
4.開始目錄使用預設
-
5.使用Nano編輯(建議設定),或使用Vim等其它編輯
-
6.建議勾選Git的指令新增至系統環境變數內
-
7.建議勾選OpenSSL資料庫
-
8.建議勾選掛平台專案方式
-
9.建議勾選Git內建終端機操作
-
10.依預設進行下一步
-
11.延伸功能建議不勾選
-
12.開始安裝
-
13.安裝完成
二、安裝虛擬機VirtualBox
- 至官網下載,按下一步安裝即可,連結請點我
二、安裝Docker Toolbox
-
至官方GitHub下載,並依下方流程進行安裝,連結請點我
-
1.建議不勾選幫助Toolbox改善,點選下一步
-
2.依預設路徑
-
3.建議只勾選Docker compose for Windows選項,虛擬機及Git自行 安裝(Kitematic圖形化管理箱建議不勾選)
-
4.全部勾選並按下一步
-
5.執行安裝
-
6.開始安裝
-
7.安裝完成
測試Docker是否正常運作
-
1.點擊Docker Quickstart Terminal
-
2.出現鯨魚圖案表示成功開啟
-
3.會自動產生default虛擬機上
-
4.運行Docker第一支程式測試
docker container run hello-world
Linux環境安裝Docker
Docker支援64位元Ubuntu作業系統
代號 | 版本 | 備考 |
---|---|---|
Xenial | 16.04 | LTS版 |
Bionic | 18.04 | LTS版 |
Cosmic | 18.10 | |
Disco | 19.04 |
懶人無腦安裝版!!!
* 1.無腦安裝會安裝所有的相依性與推薦的套件,且不需要經過確認
* 2.無腦安裝會安裝最新的版本(非 stable release 版本)
* 3.如果只是要單機個人玩不care開發穩定性,可以使用
* 3.**官方不建議依此安裝**
#如果沒有curl套件要先 apt-get install curl
curl -fsSL https://get.docker.com | sh #記得要切root
正式安裝版(依據Docker官網步驟),連結請點我
- 1.更新倉庫清單:
sudo apt-get update
sudo apt-get upgrade #請自行斟酌安裝的套件
- 2.安裝套件,並透過HTTPS使用倉庫:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
- 3.取得Docker官方公鑰並簽署
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
- 4.加入Docker APT倉庫
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
- 5.檢查倉庫
ls -l /etc/apt/sources.list.d
- 6.安裝Docker CE
sudo apt-get install docker-ce docker-ce-cli containerd.io
- 7.檢查Docker是否運作
systemctl status docker.service
- 8.檢查Docker資訊
sudo docker info
- 9.運行Docker第一支程式測試
sudo docker container run --rm hello-world
讓一般使用者可以使用docker(輸入完後重新開機) for Linux (不用在sudo docker)
sudo usermod -G docker -a USER #USER為使用者名稱
Dokcer-Compose 安裝
Docker-compose 可以透過該指令一口起停起多個 Container ,並讀取人類很好閱讀的 yaml 格式,安裝方式如下 :
- 此範例以 Linux 為例,如果非 Linux 請至官方上查看你的作業系統安裝方式,官網連結請點我
1. 確保 Docker 引擎已經完成後
# 下載最新 Docker-compose 入口程序
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Dokcer 使用GPU nvidia-docker (for Linux)
- NVIDIA Docker 是 NVIDIA 官方所提供的 Docker 執行環境,可以讓有使用 CUDA 的程式放在 Docker 中執行。
- 請先安裝Nvidia-driver
安裝nidia-driver請參考
- 加入第三方提供的drivers倉庫清單
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install ubuntu-drivers-common
- 查看驅動程式狀態
ubuntu-drivers devices
- 推薦可以安裝440的版本,接下來就安裝驅動程式並且裝完重開機
sudo apt install nvidia-driver-440
sudo reboot
安裝nvidia-docker
## 加入nvidia-docker 軟體倉庫
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
# 安裝 nvidia-container-toolkit
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
檢測是否安裝成功
docker container run --gpus all --rm nvidia/cuda nvidia-smi
安裝nvidia-docker2(docker 19.03版本就不用了)官方建議不使用
還是提供程式碼給Docker版本較舊的參考
#移除舊版Docker
#docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
#sudo apt-get purge nvidia-docker
#sudo apt-get install nvidia-docker2
#sudo pkill -SIGHUP dockerd
舊版檢測是否安裝成功
#docker container run --runtime=nvidia --rm nvidia/cuda nvidia-smi
注. nvidia-docker官方文件請自行參閱,連結請點我 。
附錄 Centos 系列一鍵部署 docker-cli及 docker compose 的腳本
#!/bin/bash
function log_info() {
DATE=$(date "+%Y-%m-%d %H:%M:%S")
echo -e "\033[32m$DATE [INFO]: $1 \033[0m"
}
function log_err() {
DATE=$(date "+%Y-%m-%d %H:%M:%S")
echo -e "\033[31m$DATE [ERROR]: $1 \033[0m"
}
function check_release(){
os=$(hostnamectl | grep ' Operating System' | grep CentOS)
if [[ $os == '' ]]; then
log_err "目前僅支援CentOS 系列安裝..."
exit 1
else
log_info "檢測版本為CentOS 系列.."
fi
}
function installer() {
log_info "開始安裝Docker程序....."
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io -y
log_info "Dokcer安裝完畢,並啟動服務及開機自動載入..."
systemctl start docker
systemctl enable docker
log_info "執行Hello World image"
docker run hello-world
log_info "安裝Docker Compose"
curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose && \
chmod +x /usr/local/bin/docker-compose
docker-compose --version
log_info "Let's rock it~~~"
}
if [[ $(whoami) != "root" ]]; then
log_err "請使用 root 管理者"
exit 1
fi
check_release
installer
4 Comments