首頁 >後端開發 >php教程 >Linux上如何安裝並使用Docker

Linux上如何安裝並使用Docker

小云云
小云云原創
2018-03-13 09:14:422380瀏覽

本文主要和大家主要介紹了在Linux上安裝和使用Docker的方法,小編覺得挺不錯的,現在分享給大家,希望能幫助到大家。

Docker 使得建立、部署,和管理容器變得特別簡單。更好的是,安裝和使用 Docker 在 Linux 平台上特別的方便。

我將會向你示範在 Linux 上安裝 Docker 是多麼方便,同時帶你入門 Docker。我的演示平台是 Ubuntu 16.04 Server,但流程在大多數其它 Linux 平台都差不多。

我這裡假設你已經啟動了 Ubuntu Server 16.04。

安裝

由於 Ubuntu Server 16.04 缺少圖形介面,我會完全透過命令列來安裝和使用 Docker。在你安裝前,你需要更新 apt 然後進行必要的升級。一定要注意,若係統核心升級了,你會需要重新啟動系統。因此最好挑個伺服器能重啟的時間進行。

執行下方指令更新apt:


sudo apt update

完成後,使用指令升級系統:


##

sudo apt upgrade

若核心升級了,你需要用下面指令重啟伺服器:


sudo reboot

若核心沒有升級,你就可以安裝Docker 了(無需重新啟動)。安裝Docker 的指令為:


sudo apt install docker.io

若你使用的是其它Linux 發行版,當嘗試用對應的套件管理器來安裝時卻發現沒有docker.io 套件,則你應該安裝docker 套件。例如,在 Fedora 上安裝應該使用指令:


sudo dnf install docker

如果你使用的是 CentOS 7,那麼最好使用安裝腳本來安裝 docker。首先使用指令 sudo yum check-update 更新系統。升級完後,輸入下方指令下載並執行所需的腳本:


curl -fsSL https://get.docker.com/ | sh

預設情況下,只有管理員權限能夠執行 docker 指令。考慮到安全性問題,你不會想用 root 使用者或使用 sudo 來運行 Docker 的。要解決這個問題,你需要將自己的使用者加入 docker 群組。命令如下:


sudo usermod -a -G docker $USER

完成操作後,登出系統然後再重新登錄,應該就搞定了。不過如果你的平台是 Fedora,則加入使用者到 docker 群組時會發現這個群組是不存在的。那該怎麼辦呢?你需要先創建這個組。指令如下:


sudo groupadd docker && sudo gpasswd -a ${USER} docker && sudo systemctl restart docker
newgrp docker

登出後再登入。就可以開始用 Docker 了。

啟動,暫停以及啟用 Docker

安裝好 Docker 後,你可以讓系統在啟動時自動啟動 Docker 守護程式。使用下面兩個指令來實現這一點:


sudo systemctl start docker
sudo systemctl enable docker

若需要暫停或重新啟動Docker 守護進程,則指令為:


sudo systemctl stop docker
sudo systemctl restart docker

現在可以用Docker 部署容器了。

拉取映像

對 Docker 來說,映像就是建置容器的基石。你可以拉下一個鏡像(例如 NGINX)然後根據這個鏡像部署任意多個容器出來。在使用鏡像前,你首先需要把鏡像拉取到系統中。映像從註冊倉庫中拉取,預設安裝好的Docker 包含了一個預設的註冊倉庫Docker Hub —— 這個註冊倉庫包含了大量別人所貢獻的鏡像(既包括官方的鏡像,也包括用戶自己貢獻的鏡像)。

假設你想要拉取一個 Nginx Web 伺服器相關的映像。在開始拉取前,先檢查系統中已經有了哪些鏡像。輸入 docker images 指令你會發現現在還沒有鏡像存在(圖 1)。

圖 1:還沒有鏡像。


讓我們來拉取一個鏡像。使用下面命令可以從 Docker Hub 下載 Nginx 映像:


docker pull nginx

上面命令會從 Docker Hub 下載最新的(官方的) Nginx 映像。現在再執行 docker images 指令就能看到有列出映像了(圖 2)。

圖 2:NGINX 映像已經被拉取下來了。


注意到我這裡說的是「官方」 Nginx 鏡像了嗎?在 Docker Hub 上有很多的非官方 Nginx 映像。這些非官方鏡像都是基於各種不同的目的而創建的。你可以使用下面過指令來搜尋 Docker Hub 中的所有 Nginx 映像:


docker search nginx

你会发现(图 3 中),有很多基于不同目的所创建的 Nginx 镜像(反向代理、PHP-FPM(LCTT 译注:FastCGI 进程管理器FastCGI Process Manager是一个 PHPFastCGI 管理器,旨在将 FastCGI 进程管理整合进 PHP 包中)功能、LetsEncrypt(LCTT 译注:由 ISRG 提供的免费 SSL 项目),Bitnami,在树莓派上使用的 Nginx 和 Drupal,等等很多很多)。


图 3:Docker Hub 上找到的各种 NGINX 镜像。

假设,你想要下载内建有反向代理功能的 Nginx 镜像,有个非官方的镜像 jwilder/nginx-proxy。因此输入下面命令来拉取这个镜像:


docker pull jwilder/nginx-proxy

再输入 docker images 命令来查看新拉下来的这个镜像(图 4)。

图 4:已经有了两种不同的 NGINX 镜像了。

处于谨慎考虑,我建议只使用官方镜像,毕竟你无法确定非官方镜像是否包含了恶意代码。

有了镜像后就可以用它来部署容器了。下次我们再聊聊如何通过这些 Nginx 镜像来发布容器。

Docker 是一个超级强力的系统可以让你的工作更简单,让你的公司更具有伸缩性,也更灵活。想知道 Docker 还能做什么,运行 man docker 然后阅读它的帮助文档吧。

相关推荐:

使用docker基于daocloud自动化部署到自己的主机

如何使用Docker部署PHP开发环境

关于如何使用docker构建php的开发环境

以上是Linux上如何安裝並使用Docker的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn