2023-05-10|閱讀時間 ‧ 約 8 分鐘

App 自動化測試(二)Docker 安裝與使用

前言

前篇把 Ubuntu 作業系統的安裝跟準備談完了,有需要可以跳回去看。接下來聊容器服務 Docker 的安裝與使用。
Docker 可以應用的場合很多,這次是會用它來模擬 Android 受測裝置,當然可以作為待測物的服務很多,像是 Android Studio 的 EVD等,不過考量效能還是以 Docker 化的 ReDroid 為主。

Docker 安裝

Ubuntu 因為有優異的套件管理,安裝相對簡單,參考官網說明依樣畫葫蘆就好: Install Docker Engine on Ubuntu | Docker Documentation
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 虛擬機的安裝了。
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.