# DOCKER 環境安裝
## :memo: Where do I start?
### 1. 安裝 UBUNTU 20.04 (以國網TWCC為範例)

### 2. Docker 安裝
- 更新及安裝相關套件
```
sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y install ca-certificates curl gnupg lsb-release rsync zip unzip
```
- Docker 安裝
```
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update -y
sudo apt-get -y install docker-ce docker-ce-cli containerd.io
```
- 加入 Docker 群組
```
sudo groupadd docker
sudo usermod -aG docker $USER
sudo systemctl enable docker # 啟動 Docker 服務
sudo docker --version
```
- 安裝 Docker Composer
```
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
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
```
- 測試安裝結果, (需切換身分或從新登入帳號)
```
sudo su
su ubuntu
docker run hello-world
```
### 3. 如何用DOKCER啟動容器 (container)
1. 背景執行容器範例
```
docker run --name demo_container -d ${IMAGE} bash
```
2. 互動執行範例, 離開後自動關閉容器
```
docker run --name demo_container --rm -it ${IMAGE} bash
```
3. 直接執行範例 , 執行後自動關閉容器
```
docker run --rm ${IMAGE} bash -c "${cmd}"
```
4. 連線至已經在背景執行容器範例 (最後為bash 或 sh)
```
docker exec -it demo_container bash
```
6. 複製容器成IMAGE
```
docker commit demo_container c00cjz00/cuda:11.8
```
7. 推播IMAGE 至 DOCKER HUB
```
docker login
docker push c00cjz00/cuda:11.8
```
8. 容器開關
```
#關閉容器demo_container
docker stop demo_container
#開啟容器demo_container
docker start demo_container
#重啟容器demo_container
docker restart demo_container
#刪除容器demo_container
docker rm demo_container
#刪除映像檔
docker rm $IMAGEID
```