轻松教你学会 Docker镜像仓库的使用

本文详细介绍了如何使用Docker Hub创建存储库,并在本地创建、查看、标记镜像,然后将镜像上传到私有仓库。同时,讲解了在服务器上如何拉取和使用这些镜像,通过docker-compose来启动服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于【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镜像仓库的使用分享就到这啦~

最后

如果你是前端工程师同学,对前端监控搭建感兴趣,欢迎试用体验【webfunny监控系统】。
Webfunny专注于微信小程序、H5前端、PC前端线上应用实时监控,实时监控前端网页、前端数据分析、错误统计分析监控和BUG预警,第一时间报警,快速修复BUG!支持私有化部署,容器化部署,可支持千万级PV的日活量!]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值