如何在Gentoo Linux上安裝與執行Docker容器

Docker是很熱門的容器技術,比虛擬機輕量,適合用於各種開發用途。大部分Linux發行版都支援Docker,而Gentoo只要Linux核心有開啟正確選項,同樣能執行Docker。

只不過Gentoo Wiki有給出提醒:若容器會導致核心錯誤(kernel panic),會連帶讓宿主機也發生核心錯誤。

1. 調整核心選項

官方預先編譯的sys-kernel/gentoo-kernel-bin預設已經支援Docker。

若是手動調整核心,參考Gentoo Wiki開啟Docker相關的功能。

接著用以下指令確認核心與Docker的相容性:

1
/usr/share/docker/contrib/check-config.sh

2. 安裝Docker

  1. Gentoo的Docker套件有app-containers/dockerapp-containers/docker-cli,FLAG維持預設,直接編譯安裝:
1
sudo emerge --ask --verbose app-containers/docker app-containers/docker-cli
  1. 將自己加入Docker群組。然而因執行Docker就等同root,所以還是讓一般用戶維持需要sudo的模式。
1
sudo usermod -aG docker $USER
  1. 將Docker加入開機服務
1
2
sudo rc-update add docker default
sudo rc-service docker start
  1. 為防止Docker出現dial tcp: lookup docker no such host錯誤,編輯/etc/resolv.conf,將DNS伺服器改成只剩Google的:
1
nameserver 8.8.8.8

3. 測試Docker執行狀況

  1. 試試看執行Hello World
1
sudo docker run --rm hello-world
  1. 應會得到以下輸出。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
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/
  1. 接著再測試從Dockerfile建立容器,新增一個叫做"Dockerfile"的檔案,填入以下內容
1
FROM ubuntu
  1. 建立Ubuntu容器
1
sudo docker build -t my-ubuntu .
  1. 應會進到Ubuntu終端機,輸入exit退出。
1
2
ivon@Gentoo ~/ $ sudo docker run -it --rm --name running-ubuntu my-ubuntu
root@35525e4f1459:/#

感謝您的閱讀。歡迎分享Ivon的部落格(ivonblog.com)的文章,引用或轉載請註明文章網址,並遵守創用CC-姓名標示-非商業性-禁止改作 4.0 國際授權條款。如需商業使用請來信告之。

written by human, not by AI

如果本網站文章對您有幫助,歡迎請我喝杯珍珠奶茶。

留言板

點選按鈕,選擇您覺得方便的留言系統。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要登入Github帳號才能留言。支援markdown語法,方便您張貼程式碼,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus投放的廣告。無論有無登入皆可留言。此處留言只有本站參與者看得到。若您選擇以訪客身份匿名留言,就不會收到後續回覆通知。