如何學會Docker映象倉庫的使用?
關於【Docker Hub】背景
Docker Hub 是一個由 Docker 公司執行和管理的基於雲的儲存庫。它是一個線上儲存庫,Docker 映象可以由其他使用者釋出和使用。有兩種庫:公共儲存庫和私有儲存庫。如果你是一家公司,你可以在你自己的組織內擁有一個私有儲存庫,而公共映象可以被任何人使用。
一、在Docker Hub上建立自己的儲存庫repository
- 映象儲存在Registry的倉庫中,預設的Registry是由Docker公司運營的公共Registry服務,即Docker Hub,網址為:https://hub.docker.com/。可以把Docker Hub看成類似於Github一樣的網址。
二、本地專案進行docker映象
1、登入docker
命令:docker login,顯示Login Succeeded說明成功,沒登入的話,需要輸入使用者名稱username和密碼password。
2、建立映象
使用docker-compose來建立映象,在yml檔案中還要定義專案所依賴的容器(redis和mysql)
命令:docker-compose up -d
docker-compose.yml檔案如下:
version: '2'
services:
jeecg-boot-mysql:
build:
context: ./db
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_ROOT_HOST: '%'
TZ: Asia/Shanghai
restart: always
container_name: jeecg-boot-mysql
image: xiaoxiaoyuyu123/aids:mysql
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--default-authentication-plugin=mysql_native_password
ports:
- 3306:3306
jeecg-boot-redis:
image: xiaoxiaoyuyu123/aids:redis
ports:
- 6379:6379
restart: always
hostname: jeecg-boot-redis
container_name: jeecg-boot-redis
jeecg-boot-system:
build:
context: ./medical-assistant-boot-start
restart: on-failure
depends_on:
- jeecg-boot-mysql
- jeecg-boot-redis
container_name: jeecg-boot-system
image: jeecg-boot-system
hostname: jeecg-boot-system
ports:
- 8080:8080
3、檢視映象
命令:docker images
說明:
- REPOSITORY:該映象所屬的倉庫名稱
- TAG:映象的標籤(見下面介紹)
- IMAGE ID:映象ID
- CREATED:映象建立的時間
- SIZE:映象的大小
4、tag標籤(映象的標籤)
標籤介紹
作用:一個倉庫中可以有多個映象。為了區分一個倉庫中不同的映象,Docker提供了標籤(tag)的功能
每個映象在列出來時都會帶有一個標籤,如16.04、18.04、quantal或者precise等。每個標籤對組成特定映象的一些映象層進行標記(比如,標籤16.04就是對所有ubuntu 16.04映象的層的標記)
同一個倉庫中,可以同時存在多個相同的映象(IMAGE ID相同),只要標籤(TAG)不同就可以了
命令:docker tag jeecg-boot-system:latest xiaoxiaoyuyu123/aids:jeecg-boot-system
說明:
jeecg-boot-system:latest(本地倉庫名稱+標籤)
xiaoxiaoyuyu123/aids:jeecg-boot-system(私服倉庫地址+標籤)
5、上傳到私有倉庫
命令:docker push xiaoxiaoyuyu123/aids:jeecg-boot-system
說明:
xiaoxiaoyuyu123/aids:jeecg-boot-system(私服倉庫地址+標籤)
三、伺服器上使用
1、先登入私服地址,然後從上面pull下來映象
命令:docker pull xiaoxiaoyuyu123/aids:jeecg-boot-system
2、上傳伺服器yml檔案,使用docker-compose來啟動映象
命令:docker-compose -f ./docker-compose-server.yml up
docker-compose-server.yml檔案如下:
version: '2'
services:
jeecg-boot-mysql:
image: xiaoxiaoyuyu123/aids:mysql
environment:
MYSQL_ROOT_PASSWORD: root
restart: always
container_name: jeecg-boot-mysql
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
ports:
- 3306:3306
jeecg-boot-redis:
image: xiaoxiaoyuyu123/aids:redis
ports:
- 6379:6379
restart: always
container_name: jeecg-boot-redis
jeecg-boot-system:
image: xiaoxiaoyuyu123/aids:jeecg-boot-system3.8
restart: always
container_name: jeecg-boot-system
volumes:
- /data/config:/jeecg-boot/config
ports:
- 8080:8080
jeecg-boot-nginx:
image: xiaoxiaoyuyu123/aids:nginxhtml
restart: always
container_name: jeecg-boot-nginx
ports:
- 80:80
好啦, 關於{Docker映象倉庫的使用}分享就到這啦,PS: 如果你是前端工程師同學,歡迎試用體驗【webfunny監控系統】。
Webfunny專注於微信小程式、H5前端、PC前端線上應用實時監控,實時監控前端網頁、前端資料分析、錯誤統計分析監控和BUG預警,第一時間報警,快速修復BUG!支援私有化部署,容器化部署,可支援千萬級PV的日活量!