首頁 運維 Docker 怎麼安裝和配置docker

怎麼安裝和配置docker

Jun 08, 2020 pm 05:06 PM
docker

怎麼安裝和配置docker

怎麼安裝和設定docker?

本文補充了在雲端部署和管理容器化工作負載的網路研討會系列 。 本系列介紹了容器的基本知識,包括容器生命週期管理,部署多容器應用程序,擴展工作負載以及理解Kubernetes,以及突出顯示運行有狀態應用程序的最佳實踐。

本教學包括本系列第一部分「容器入門」中介紹的概念和指令。

介紹

#Docker是一個部署和管理容器化應用程式的平台。 容器在開發人員,管理員和devops工程師中很受歡迎,因為他們提供了靈活性。

Docker有三個基本元件:

Docker引擎Docker工具Docker註冊表

Docker Engine提供了管理容器的核心功能。 它與底層的Linux作業系統進行接口,以公開簡單的API來處理容器的生命週期。

Docker Tools是一組與Docker Engine公開的API互動的命令列工具。 它們用於運行容器,創建新映像,配置儲存和網絡,以及執行更多影響容器生命週期的操作。

Docker Registry是儲存容器映像的地方。 每個影像可以有多個版本透過獨特的標籤來標識。 用戶從登錄中拉出現有的影像,並推送新的影像。 Docker Hub是由Docker,Inc.管理的託管註冊表。還可以在自己的環境中運行註冊表,以使映像更靠近引擎。

在本教學結束時,您將在DigitalOcean Droplet上安裝Docker,管理容器,處理映像,新增持久性,並設定私人註冊表。

先決條件

要學習本教程,您將需要:

按照Ubuntu 16.04初始伺服器設定教程設定一個Ubuntu 16.04 Droplet,其中包含一個sudo非root使用者和一個防火牆。

Docker Hub帳號 。 Docker Hub的這個概述將幫助你開始。

預設情況下, docker指令需要root權限。 但是,可以透過在docker群組中以docker使用者身分執行docker來執行不帶sudo前綴的命令。

要以此方式設定您的Droplet,請執行指令sudo usermod -aG docker ${USER} 。 這會將目前使用者新增至docker群組。 然後,執行指令su - ${USER}以應用新的群組成員身分。

本教學希望您的伺服器配置為不使用sudo前綴來執行docker指令。

第1步- 安裝Docker

在SSH進入Droplet後,執行以下命令刪除所有可能已經安裝的docker相關的包,然後從官方倉庫安裝Docker :

sudo apt-get remove docker docker-engine docker.io
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo apt-key fingerprint 0EBFCD88sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"sudo apt-get update
sudo apt-get install -y docker-ce
登入後複製

安裝Docker後,使用以下命令驗證安裝:

docker info
登入後複製

以上命令顯示了環境中部署的Docker Engine的詳細資訊。 下一個指令將驗證Docker Tools是否正確安裝和設定。 它應該列印Docker引擎和工具的版本。

docker version
登入後複製

第2步 - 啟動容器

Docker容器是從儲存在登錄中的現有映像啟動的。 Docker中的映像可以儲存在私人或公共儲存庫中。 私人儲存庫要求使用者在提取影像之前進行身份驗證。 任何人都可以存取公共影像。

要搜尋名為hello-world的映像,請執行以下指令:

docker search hello-world
登入後複製

可能會有多個圖片與名稱hello-world相符。 選擇最大的星星,這表示影像的流行。

使用以下指令檢查本機環境中的可用映像:

docker images
登入後複製

由於我們還沒有推出任何容器,所以不會有任何映像。 我們現在可以下載映像並在本地運行:

docker pull hello-world
docker run hello-world
登入後複製

如果我們執行docker run命令而不拖曳映像,Docker Engine將首先拉取映像然後運行它。 再次執行docker images指令顯示我們有本機可用的hello-world映像。

讓我們啟動一個更有意義的容器:一個Apache Web伺服器。

docker run -p 80:80 --name web -d httpd
登入後複製

您可能會注意到傳遞給docker run命令的其他選項。 以下是對這些開關的解釋:

-p - 這告訴Docker引擎在主機的連接埠80上公開容器的連接埠80 。 由於Apache在連接埠80上監聽,我們需要在主機連接埠上公開它。 --name - 這個開關為我們正在運作的容器分配一個名字。 如果我們省略這個,Docker Engine將會分配一個隨機的名字。

-d - 此選項指示Docker引擎以分離模式運作容器。 沒有這個,容器將在前台啟動,阻止對外殼的訪問。 透過將容器推入後台,我們可以在容器仍在運作時繼續使用外殼。

要验证我们的容器是否确实在后台运行,请尝试以下命令:

docker ps
登入後複製

输出显示名为web的容器正在运行,端口80映射到主机端口80 。

现在访问Web服务器:

curl localhost
登入後複製

让我们停止并用下面的命令删除正在运行的容器:

docker stop web
docker rm web
登入後複製

运行docker ps再次确认容器已被终止。

第3步 - 添加存储到容器

容器是短暂的,这意味着当容器终止时,存储在容器内的任何东西都将丢失。 要将数据保存在容器的寿命之外,我们需要将容器附加到容器中。 卷是主机文件系统的目录。

首先在主机上创建一个新目录:

mkdir htdocs
登入後複製

现在,让我们用一个新开关启动容器来挂载htdocs目录,并将其指向Apache Web服务器的文档根目录:

docker run -p 80:80 --name web -d -v $PWD/htdocs:/usr/local/apache2/htdocs httpd
登入後複製

-v开关将容器中的htdocs目录指向主机的文件系统。 对这个目录所做的任何更改都将在两个位置都可见。

通过运行以下命令从容器中访问目录:

docker exec -it web /bin/bash
登入後複製

该命令以交互模式将我们的终端连接到容器的外壳。 你应该看到你现在被丢在容器内。

导航到htdocs文件夹并创建一个简单的HTML文件。 最后退出shell返回主机:

cd /usr/local/apache2/htdocs
echo &#39;<h1>Hello World from Container</h1>&#39; > index.htmlexit
登入後複製

再次执行curl localhost命令显示Web服务器正在返回我们创建的页面。

我们不仅可以从主机访问这个文件,但我们也可以修改它:

cd htdocs
cat index.html
echo &#39;<h1>Hello World from Host</h1>&#39; | sudo tee index.html >/dev/null
登入後複製

再次运行curl localhost ,确认Web服务器正在提供从主机创建的最新页面。

使用以下命令终止容器。 ( -f迫使Docker先停止而不停止。)

docker rm -f web
登入後複製

第4步 - 建立图像

除了从注册表中运行现有的图像,我们可以创建自己的图像,并将其存储在注册表中。

您可以从现有的容器中创建新的图像。 首先提交对容器所做的更改,然后将图像标记并推送到注册表。

让我们再次启动httpd容器并修改默认文档:

docker run -p 80:80 --name web -d httpd
docker exec -it web /bin/bash
cd htdocs
echo &#39;<h1>Welcome to my Web Application</h1>&#39; > index.htmlexit
登入後複製

该容器现在运行一个自定义的index.html 。 你可以使用curl localhost来验证它。

在我们提交更改后的容器之前,最好停止它。 停止后,我们将运行commit命令:

docker stop web
docker commit web doweb
登入後複製

使用docker images命令确认图像的创建。 它显示了我们刚刚创建的doweb图像。

要在Docker Hub中标记和存储此映像,请运行以下命令将映像推送到公共注册表:

docker login
docker tag your_docker_hub_username/doweb
docker push
登入後複製

您可以通过从浏览器或命令行在Docker Hub中搜索来验证新映像。

第5步 - 启动私人注册表

可以在私人环境中运行注册表以保持图像更加安全。 它也减少了Docker引擎和映像库之间的延迟。

Docker Registry是一个可以像任何其他容器一样启动的容器。 由于注册表拥有多个图像,因此最好将存储卷附加到该图像上。

docker run -d -p 5000:5000 --restart=always --name registry -v $PWD/registry:/var/lib/registry registry
登入後複製

请注意,容器是在后台启动的,端口5000暴露, registry目录映射到主机文件系统。 您可以通过执行docker ps命令来验证容器正在运行。

我们现在可以标记一个本地图像,并将其推送到私人注册表。 我们首先从Docker Hub中取出busybox容器并对其进行标记。

docker pull busybox
docker tag busybox localhost:5000/busybox
docker images
登入後複製

以前的命令确认busybox容器现在用localhost:5000标记,所以将图像推送到私有注册表。

docker push localhost:5000/busybox
登入後複製

将图像推送到本地注册表,让我们尝试从环境中删除它,并从注册表中拉回。

docker rmi -f localhost:5000/busybox
docker images
docker pull localhost:5000/busybox
docker images
登入後複製

我们经历了拉动图像,标记,推送到本地注册表,最后拉回来的整个圈子。

可能有些情况下您想要在专用主机中运行私有注册表。 在不同的机器上运行的Docker引擎会与远程注册表进行通信,以获取和推送图像。

由于注册表不安全,我们需要修改Docker引擎的配置以启用对不安全注册表的访问。 为此,编辑位于/etc/docker/daemon.json的daemon.json文件。 创建文件,如果它不存在。

添加以下条目:

编辑/etc/docker/daemon.json

{
 "insecure-registries" : ["REMOTE_REGISTRY_HOST:5000"]}

REMOTE_REGISTRY_HOST替换为远程注册表的主机名或IP地址。 重新启动Docker引擎以确保应用配置更改。

结论

本教程帮助您开始使用Docker。 它涵盖了安装,容器管理,映像管理,存储和私有注册表等基本概念。 本系列即将发布的会议和文章将帮助您超越Docker的基础知识。

相关参考:docker教程

以上是怎麼安裝和配置docker的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

docker怎麼退出容器 docker怎麼退出容器 Apr 15, 2025 pm 12:15 PM

退出 Docker 容器的四種方法:容器終端中使用 Ctrl D 快捷鍵容器終端中輸入 exit 命令宿主機終端中使用 docker stop &lt;container_name&gt; 命令宿主機終端中使用 docker kill &lt;container_name&gt; 命令(強制退出)

docker內的文件怎麼拷貝到外面 docker內的文件怎麼拷貝到外面 Apr 15, 2025 pm 12:12 PM

Docker 中將文件拷貝到外部主機的方法:使用 docker cp 命令:執行 docker cp [選項] &lt;容器路徑&gt; &lt;主機路徑&gt;。使用數據卷:在主機上創建目錄,在創建容器時使用 -v 參數掛載該目錄到容器內,實現文件雙向同步。

docker容器名稱怎麼查 docker容器名稱怎麼查 Apr 15, 2025 pm 12:21 PM

可以通過以下步驟查詢 Docker 容器名稱:列出所有容器(docker ps)。篩選容器列表(使用 grep 命令)。獲取容器名稱(位於 "NAMES" 列中)。

docker怎麼重啟 docker怎麼重啟 Apr 15, 2025 pm 12:06 PM

重啟 Docker 容器的方法:獲取容器 ID(docker ps);停止容器(docker stop &lt;container_id&gt;);啟動容器(docker start &lt;container_id&gt;);驗證重啟成功(docker ps)。其他方法:Docker Compose(docker-compose restart)或 Docker API(參考 Docker 文檔)。

docker怎麼啟動mysql docker怎麼啟動mysql Apr 15, 2025 pm 12:09 PM

在 Docker 中啟動 MySQL 的過程包含以下步驟:拉取 MySQL 鏡像創建並啟動容器,設置根用戶密碼並映射端口驗證連接創建數據庫和用戶授予對數據庫的所有權限

docker怎麼啟動容器 docker怎麼啟動容器 Apr 15, 2025 pm 12:27 PM

Docker 容器啟動步驟:拉取容器鏡像:運行 "docker pull [鏡像名稱]"。創建容器:使用 "docker create [選項] [鏡像名稱] [命令和參數]"。啟動容器:執行 "docker start [容器名稱或 ID]"。檢查容器狀態:通過 "docker ps" 驗證容器是否正在運行。

docker怎麼更新鏡像 docker怎麼更新鏡像 Apr 15, 2025 pm 12:03 PM

更新 Docker 鏡像的步驟如下:拉取最新鏡像標記新鏡像為特定標籤刪除舊鏡像(可選)重新啟動容器(如果需要)

docker怎麼創建容器 docker怎麼創建容器 Apr 15, 2025 pm 12:18 PM

在 Docker 中創建容器: 1. 拉取鏡像: docker pull [鏡像名] 2. 創建容器: docker run [選項] [鏡像名] [命令] 3. 啟動容器: docker start [容器名]

See all articles