前言
前篇把 Ubuntu 作業系統的安裝跟準備談完了,有需要可以跳回去看。接下來聊容器服務 Docker 的安裝與使用。
Docker 可以應用的場合很多,這次是會用它來模擬 Android 受測裝置,當然可以作為待測物的服務很多,像是 Android Studio 的 EVD等,不過考量效能還是以 Docker 化的 ReDroid 為主。
Docker 安裝
1. 假如有先移除舊版本
sudo apt-get remove docker docker-engine docker.io containerd runc
2. 更新 APT 服務,讓他支援 HTTPS 加密傳輸
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg
3. 加入 Docker 官方的解密 KEY
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
4. 新增 Docker 的套件來源
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5. 更新套件資料庫
sudo apt-get update
6. 安裝最新版本
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
7. 驗證 Docker 運作是否正常
sudo docker run hello-world
...
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
Docker 基本操作
Docker 功能眾多,有需要請翻閱
官方文件,以下僅對於常用部分做說明。
察看容器運作狀態
基本語法
sudo docker ps
全部顯示容器包含停止狀態的,就加 -a
sudo docker ps -a
容器的狀態與管理
容器狀態大致可以用上圖表示
獲得容器ID
首先要獲得容器的ID,在創建或者執行後,就能用 PS 指令看到
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b964347efaf9 redroid/redroid:11.0.0-latest "/init qemu=1 androi…" 13 hours ago Up 12 hours 0.0.0.0:5555->5555/tcp, :::5555->5555/tcp redroid11
其中的 b964347efaf9 就是容器ID
啟動停止重啟容器
啟動容器
sudo docker start [容器ID]
停止容器
sudo docker stop [容器ID]
重啟容器
sudo docker restart [容器ID]
替容器取名字
sudo docker rename [容器ID] [容器新名字]
之後就能用新名字來對容器下啟動、停止等指令了
清除容器服務的資料
察看目前資料佔用空間
sudo docker system df
察看佔用空間詳細版
sudo docker system df -v
系統等級的清理
sudo docker system prune -a
系統等級的清理但保留有下標籤的
sudo docker system prune
小結
本篇講了如何在 Ubuntu 中安裝 Docker 跟一些基本的操作指令。
下一篇就會進入 ReDroid 虛擬機的安裝了。