debian10安裝docker

使用root登錄

將已安裝的軟件包更新到最新版本:

apt update
apt upgrade

 

  1. 安裝通過 HTTPS 添加新存儲庫所需的依賴項:
apt install apt-transport-https ca-certificates curl software-properties-common gnupg2

使用以下 curl 命令導入存儲庫的 GPG 密鑰:

root@debiantest1:~# curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
OK
root@debiantest1:~# 

鍵入以下內容,將 Docker APT 存儲庫添加到系統的軟件存儲庫列表中:

root@debiantest1:~# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
root@debiantest1:~#

 

接下來,使用新添加的repo中的Docker包更新包數據庫:

apt update

 

確保您要從Docker repo而不是默認的Debian repo安裝:

root@debiantest1:~# apt-cache policy docker-ce
docker-ce:
  Installed: (none)
  Candidate: 5:19.03.4~3-0~debian-buster
  Version table:
     5:19.03.4~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:19.03.3~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:19.03.2~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:19.03.1~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:19.03.0~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.9~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.8~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.7~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.6~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.5~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.4~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.3~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.2~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.1~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     5:18.09.0~3-0~debian-buster 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     18.06.3~ce~3-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     18.06.2~ce~3-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     18.06.1~ce~3-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     18.06.0~ce~3-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     18.03.1~ce-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     18.03.0~ce-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     17.12.1~ce-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
     17.12.0~ce-0~debian 500
        500 https://download.docker.com/linux/debian buster/stable amd64 Packages
root@debiantest1:~#

 

 

現在已啓用 Docker 存儲庫,更新 apt 軟件包列表並安裝最新版本的 Docker CE (Community Edition):

apt install docker-ce
  1. 安裝完成後, Docker 服務將自動啓動。您可以輸入以下命令進行驗證:
systemctl status docker

 

  1. 查看 Docker 版本:
root@debiantest1:~# docker -v
Docker version 19.03.4, build 9013bf583a
root@debiantest1:~#

 

如果要列出所有可用的命令,請不帶參數運行 docker :

docker

如果您需要關於 [subcommand] 的更多幫助信息,可以使用如下所示的 --help 開關:

docker [subcommand] --help

 

第4步 - 使用Docker鏡像

Docker容器是從Docker鏡像構建的。默認情況下,Docker從Docker Hub中獲取這些映像,Docker Hub是由Docker管理的Docker註冊表,Docker項目背後的公司。任何人都可以在Docker Hub上託管他們的Docker鏡像,因此您需要的大多數應用程序和Linux發行版都將在那裏託管圖像。

要檢查您是否可以從Docker Hub訪問和下載圖像,請鍵入:

docker run hello-world

輸出將指示Docker正常工作:

 

...

Docker最初無法在本地找到hello-world圖像,因此它從Docker Hub下載了圖像,Docker Hub是默認存儲庫。下載映像後,Docker從映像創建了一個容器,並在容器中執行了應用程序,顯示了該消息。再次運行就比較快了。

 

要查看已下載到計算機的圖像,請鍵入:

docker images

 

第6步 - 管理Docker容器

使用Docker一段時間後,您的計算機上將有許多活動(運行)和非活動容器。要查看活動的,請使用:

--查看活動的容器
docker ps

您將看到類似於以下內容的輸出:

在本教程中,您啓動了兩個容器; 一個來自hello-world圖像,另一個來自ubuntu圖像。兩個容器都不再運行,但它們仍然存在於您的系統上。

要查看所有容器 - 活動和非活動,請 使用-a開關運行docker ps:

--查看所有的容器,包含活動和非活動的
docker ps -a

您將看到類似於此的輸出:

要查看您創建的最新容器,請將其傳遞給-l交換機:

--查看最新的容器
docker ps -l

 

要啓動已停止的容器,請使用docker start,後跟容器ID或容器名稱。讓我們啓動基於Ubuntu的容器,其ID爲 d9b100f2f636:

--啓動d9b100f2f636容器
docker start d9b100f2f636

容器將啓動,您可以使用docker ps來查看其狀態:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d9b100f2f636 ubuntu "/bin/bash" About an hour ago Up 8 seconds sharp_volhard

要停止正在運行的容器,請使用docker stop,後跟容器ID或名稱。這次,我們將使用Docker分配容器的名稱,即sharp_volhard:

--停止sharp_volhard容器
docker stop sharp_volhard

一旦您決定不再需要容器,請使用該docker rm命令將其刪除,再次使用容器ID或名稱。使用該docker ps -a命令查找與hello-world映像關聯的容器的容器ID或名稱,然後將其刪除。

docker rm festive_williams

您可以使用--name開關啓動一個新容器併爲其命名。您還可以使用該--rm開關創建一個在停止時自行刪除的容器。有關這些選項和其他選項的更多信息,請參閱該docker run help命令。

容器可以轉換爲可用於構建新容器的映像。讓我們來看看它是如何工作的。

 

讓我們使用Ubuntu的最新圖像運行一個容器。-i和-t開關的組合爲您提供了對容器的交互式shell訪問:

docker run -it ubuntu

 

 

步驟7 - 將容器中的更改提交到Docker鏡像

當您啓動Docker鏡像時,您可以像使用虛擬機一樣創建,修改和刪除文件。您所做的更改僅適用於該容器。您可以啓動和停止它,但是一旦使用該docker rm命令銷燬它,更改將永久丟失。

本節介紹如何將容器的狀態保存爲新的Docker鏡像。

在Ubuntu容器中安裝Node.js後,您現在有一個運行圖像的容器,但容器與您用來創建它的圖像不同。但是您可能希望稍後重新使用此Node.js容器作爲新映像的基礎。

然後使用以下命令將更改提交到新的Docker鏡像實例。

docker commit -m "What you did to the image" -a "Author Name" container_id repository/new_image_name

該-m開關是提交信息,可以幫助你和其他人知道你所做的修改,而-a用於指定作者。當您啓動交互式Docker會話時,container_id是您在本教程前面提到的那個。除非您在Docker Hub上創建了其他存儲庫,否則repository通常是您的Docker Hub用戶名。

例如,對於用戶sammy,使用容器ID d9b100f2f636,命令將是:

docker commit -m "added Node.js" -a "sammy" d9b100f2f636 sammy/ubuntu-nodejs

當你提交的圖像,新的圖像在您的計算機上本地保存。在本教程的後面,您將學習如何將映像推送到Docker Hub之類的Docker註冊表,以便其他人可以訪問它。

再次列出Docker圖像將顯示新圖像以及從中派生的舊圖像:

docker images

你會看到這樣的輸出:

REPOSITORY TAG IMAGE ID CREATED SIZE sammy/ubuntu-nodejs latest 7c1f35226ca6 7 seconds ago 179MB ubuntu latest 113a43faa138 4 weeks ago 81.2MB hello-world latest e38bc07ac18e 2 months ago 1.85kB

在此示例中,ubuntu-nodejs是新圖像,它是從Docker Hub 的現有ubuntu圖像派生的。尺寸差異反映了所做的變化。在此示例中,更改是NodeJS已安裝。因此,下次需要使用預先安裝了NodeJS的Ubuntu運行容器時,您可以使用新映像。

您還可以從Dockerfile構建映像,這樣可以在新映像中自動安裝軟件。但是,這超出了本教程的範圍。

現在讓我們與他人分享新圖像,以便他們可以從中創建容器。

 

遇到的問題

在下載images時遇到以下錯誤

root@debiantest1:~# docker pull ubuntu
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/library/ubuntu/manifests/latest: Get https://auth.docker.io/token?scope=repository%3Alibrary%2Fubuntu%3Apull&service=registry.docker.io: net/http: TLS handshake timeout

 

然後嘗試使用

docker pull registry.docker-cn.com/library/ubuntu

仍然失敗

root@debiantest1:/etc/docker# docker pull registry.docker-cn.com/library/ubuntu
Using default tag: latest
Error response from daemon: Get https://registry.docker-cn.com/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

 

最後

首先打開配置文件daemon.json,centos上安裝後有此文件,但是ubuntu上需要自己創建文件:

nano /etc/docker/daemon.json

 

在文件中加入:

{
    "registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
}

 

然後重啓守護進程:

sudo systemctl daemon-reload
sudo systemctl restart docker

 

此時重新下載就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章