docker之基本命令(2)

2022-05-13 01:55:38 字數 4472 閱讀 7989

管理指令  

說明docker  container

用於管理容器

docker image

用於管理映象

docker network

用於管理docker網路

docker node

用於管理swarm集群節點

docker plugin

用於管理外掛程式

docker secret

用於管理docker機密

docker service

用於管理docker一些服務

docker stack

用於管理docker堆疊

docker swarm

用於管理swarm

docker system

用於管理docker

docker volume

用於管理資料卷

我們可以構建屬於自己的映象,可以將其存放在倉庫中,方便日後拉取和維護,目前較為普遍使用的顯像管理工具:docker hub 和docker registry

docker hub:

進行登入註冊,申請乙個賬戶,

常見操作:

1 將本地映象推送到遠端docker倉庫中

1)推送的映象名稱必須符合dockerid/repository的形式規範(dockerid為docker hub上的賬號名, repository為映象名)

如果名稱不規範,需要先進行名稱的修改

例如本地有個映象: hello-docker

docker tag hello-docker:latest lanlang/test:latest

這個時候 會在本地複製乙個名稱為 lanlang/test的映象。原來的映象名稱不變,可以通過docker images 檢視

2)登入認證

推送到遠端倉庫的時候,需要進行登入驗證

docker

login

提示輸入使用者名稱和密碼, 返回login succeeded則成功

3)映象推送

docker  push  lanlang/hello-docker:latest
推送完成之後,就可以在docker hub 的test倉庫中看到該映象了

因為是對外公開的,docker hub會定時的對上傳的公開映象進行索引,過段時間 任何人都可以搜尋到該倉庫映象了

docker registry:

開始本地私有倉庫的搭建之旅吧!!!

1. 使用docker官方提供的registry映象可以搭建本地私有映象倉庫

docker run -d -p 5000:5000 --restart=always --name registry -v /mnt/registry:/var/lib/registry registry:2

-d: 在後台執行該容器

-p: 將私有映象倉庫內部預設暴露的5000埠對映到宿主機的5000埠

--restart=always: 本地私有映象倉庫宕機後始終會自動重啟

--name registry 指定的容器的名稱

-v mnt/registry:/var/lib/registry: 表示容器內的預設儲存為止/var/lib/registry中的資料掛在到宿主機/mnt/registry目錄下,當容器銷毀的時候, 在/var/lib/registry目錄下的資料會自動備份到宿主機指定目錄

2. 重新命名映象

本地私有倉庫的映象名必須符合 「倉庫ip:埠/repository」

docker tag hello-docker:latest  localhost:5000/myhellodocker

這樣映象倉庫中會多出乙個localhost:

5000/myhellodocker的映象

3. 映象推送

docker push localhost:5000/myhellodocker

推送成功之後,就可以開啟位址檢視

localhost:

5000/v2/myhellodocker/tags/list

顯示:同時在本地磁碟/mnt/registry/docker/registry/v2/repositories目錄下檢視到

至此我們本地私有倉庫搭建成功,但是還是比較基礎的。但是在實際的開發當中,無法保證系統的安全性和私密性,所以,我們還需要配置認證證書,登入賬號等

1. 首先,需要檢視需要搭建私有倉庫的伺服器的ip位址,通過ifconfig

2. 生成自簽名證書

cd /home/

mkdir -p registry/certs && cd registry/certs/openssl req -x509 -days 3650 -subj '

/cn=172.21.0.6:5000/

' -nodes -newkey rsa:2048 -keyout domain.key -out domain.crt

-x509: x509是自簽發證書的格式

-days 3650

:表示證書的有效期

172.21.0.6:5000

rsa:

2048

:是證書演算法長度

domain.key domain.crt 就是要生成的證書檔案

3. 生成使用者名稱和密碼

在剛才的certs目錄中執行

cd .. && mkdir

auth

docker run --entrypoint htpasswd registry:2 -bbn lanlang 123456 >htpasswd

自此會生成本地私服訪問的使用者名稱和密碼(lanlang

123456)

4.啟動docker registry本地驚喜那個倉庫服務

將之前啟動的該服務刪除  docker  rm -f registry

25.配置docker registry 訪問介面

服務啟動後,需要在該主機上配置供其他docker機器訪問的介面

mkdir -p /etc/docker/certs.d/172.21.0.6:5000

cp certs/domain.crt /etc/docker/certs.d/172.21.0.6\:5000/

第二步:將生成的domain.crt證書複製到該目錄下

6. 驗證測試

現在私有倉庫服務已經可以提供正常服務,我們將本地的映象推送進行測試

1)

vim /etc/docker/daemon.json

新增insecure-registries 部分

儲存,重啟docker systemctl restart docker

2)準備測試映象

docker tag lanlang/hello-docker:latest 172.21.0.6:5000/myhellodocker
3)映象推送

docker push 172.21.0.6:5000/myhellodocker

這個時候,會返回乙個錯誤

no basic auth credentials

說明需要進行身份驗證

首先,登入映象倉庫

docker

login

172.21.0.6:5000

根據提示輸入使用者名稱和密碼

再次推送即可

4) 可以檢視是否推送成功

ls /mnt/registry/docker/registry/v2/repositories/
至此,docker registry 已經搭建完成,但是它卻沒有視覺化管理工具,但是管理上感覺並不方便,其實有些社群已經開發了專門視覺化管理工具。例如portus,它整合了一些顯像管理功能,可以完全視覺化的管理倉庫映象和訪問使用者。這個服務的搭建,我會後面專門開一篇文章介紹於搭建

docker筆記2 基本命令

docker version檢視docker版本 docker info檢視docker詳細資訊 docker help檢視docker命令 字段解釋 pepository 映象的倉庫源 tag 映象的標籤 image id 映象id created 映象建立時間 size 映象大小 同乙個倉庫源可...

Docker 入門 2 基本命令

安裝docker 注意如果出現許可權問題要在命令前加sudo 顯示docker命令 docker help顯示單個命令的使用方式,例如cp命令的使用方式 docker help cpdocker run detach name web nginx latest也可以用 d 來代替 detach do...

2 Docker學習之容器基本命令

1 基本命令 使用 某個映象啟動乙個容器 docker run options image command arg docker run it tomcat 預設後邊是 bin bash 列出當前所有正在執行的容器 啟動容器 docker start 容器id或者容器名 重啟容器 docker re...