背景:
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