下面介紹如何使用 Docker 安裝和使用 Busybox、Debian/Ubuntu、CentOS/Fedora、CoreOS等操作系統。
Busybox
Busybox 是一個集成了一百多個最常用 Linux 命令和工具的軟件工具箱,它在單一的可執行文件中提供了精簡的 Unix 工具集。 Busybox 可運行于多款 POSIX 環境的操作系統中,如 Linux (包括 Android)、Hurd、FreeBSD等。
使用官方鏡像
在 DockerHub 中搜索 Busybox 相關的鏡像。
root@localhost:~# sudo docker search busybox
可以看到最受歡迎的鏡像同時帶有 officel 標記,說明它是官方鏡像。
下面使用 docker pull 命令下載這個鏡像。
root@localhost:~# sudo docker pull busybox
如果不指定標簽信息,Docker 會下載最新版本的 Busybox 鏡像。
使用 docker images 查看。
運行 Busybox
啟動一個 Busybox 容器,并在容器中執行 grep 命令。
root@localhost:~# sudo docker run -it busybox
/ # grep
查看容器內的掛載信息
/ # mount
Debian/Ubuntu
Debian/Ubuntu都是目前較為流行的 Debian 系的服務器操作系統,在 Docker Hub 上都可以直接搜索到官方版本。
搜索 Debain
root@localhost:~# sudo docker search debain
搜索 Ubuntu
Ubuntu 相關的鏡像有很多,使用 "-s" 參數,只搜索那些被收藏 10 次以上的鏡像。
root@localhost:~# sudo docker search -s 10 ubuntu
使用 -ti 參數進入,查看 ubuntu 的版本號
root@localhost:~# sudo docker run -ti ubuntu /bin/bash
root@49efe73a6eb6:/# cat /etc/issue
Ubuntu 16.04.3 LTS \n \l
安裝 curl 軟件:
root@49efe73a6eb6:/# apt-get update
root@49efe73a6eb6:/# apt-get install curl
root@49efe73a6eb6:/# curl
接下來在這個鏡像里再安裝一個 Apache 服務:
root@49efe73a6eb6:/# apt-get install apache2
啟動這個 Apache 服務,然后使用 curl 來測試本地訪問:
root@49efe73a6eb6:/# service apache2 start
root@49efe73a6eb6:/# curl 127.0.0.1
如何才能從容器外部訪問Apache 服務呢?
答:如果以 -ti 參數啟動容器,是無法讓外部設備來訪問的,如果要讓外部設備訪問容器的話,需使用 -p 參數對外映射端口。
CentOS/Fedora
CentOS/Fedora 都是基于 Redhat 的 Linux 發行版。
搜索 Centos
root@localhost:~# sudo docker search -s 2 centos
搜索 Fedora
root@localhost:~# sudo docker search -s 2 fedora
根據搜索出來的結果,自行選擇下載鏡像并使用。
CoreOS
CoreOS 是一個基于 Docker 的 Linux 發行版,官方介紹了若干安裝方法,筆者推薦初學者使用 VMware Workstation 來運行 CoreOS.
這里就不介紹安裝 CoreOS , 大家可以直接使用 阿里云的 CoreOS系統。
小結
除了官方的鏡像外,在 DockerHub 上還有許多第三方組織或個人上傳的鏡像。一般來說,它們各有特點,在選鏡像過程中,以以下幾點需要注意。
- 官方的鏡像體積都比較小,只安裝了一些基本的組件。一個精簡的系統有利于安全、穩定和高效地運行,也更加適合用定制一些服務。
- 個別組織和個人上傳的鏡像質量也非常高。他們通常針對某個具體應用做了最精準的定位,比如下載一個包含 LAMP 組件的 Ubuntu 鏡像時,DockerHub 上已經有集成鏡像。
另外,想查看下載鏡像的詳細信息,可以通過 docker inspect + 鏡像ID 的方法來獲取更多信息。
最后,關于鏡像登錄的用戶名和密碼。出于安全考慮,幾乎所有帶官方標志的操作系統都無法直接使用用戶名和密碼直接登錄,且一自選股 沒有安裝SSH 服務。
參考文檔
《Docker 技術入門與實戰》實戰安例 -- 操作系統