Docker搭建私有仓库并迁移

目录

方案

  A、B机器安装docker

设置阿里云镜像源

安装 Docker-CE并设置为开机自动启动

   A机器准备数据

 拷贝数据

B机器运行redis、mysql镜像

  重启docker服务


方案


准备两台机器:A机器(可以连接外网),B机器(内网机器、不可联网)

步骤一:A机器安装docker、这里采用离线或在线安装都可以

步骤二:A机器使用docker搭建私有仓库registry

步骤三:A机器使用docker在线pull需要安装的镜像(redis、mysql等)

步骤四:A机器使用docker提交镜像到私有仓库registry

步骤五:等A机器镜像提交完毕,使用docker将私有仓库registry打包成tar包

步骤六:拷贝仓库tar包到B机器,在B机器离线安装docker

步骤七:B机器使用docker离线pull私有仓库中的镜像,完成需求

  A、B机器安装docker

##关闭防火墙
systemctl stop firewalld.service
setenforce 0

 

[root@centos3 ~]# cd /etc/yum.repos.d/
[root@centos3 yum.repos.d]# ls
11  local.repo[root@centos3 yum.repos.d]# mv local.repo 11
[root@centos3 yum.repos.d]# ls
11[root@centos3 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

##这不边 yum源用不起来 我用的是阿里的在线源下载
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo##安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 

  yum-utils:提供了 yum-config-manager 工具。
device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
device mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。


设置阿里云镜像源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

安装 Docker-CE并设置为开机自动启动

yum install -y docker-ce docker-ce-cli containerd.io
docker-ce-20.10.18systemctl start docker.service
systemctl enable docker.service docker info #查看docker版本

 

 

  新建服务配置文件

vim /etc/systemd/system/docker.service

 将如下内容粘贴进去(不需要改动)

[Unit]Description=Docker Application Container EngineDocumentation=https://docs.docker.comAfter=network-online.target firewalld.serviceWants=network-online.target[Service]Type=notify# the default is not to use systemd for cgroups because the delegate issues still# exists and systemd currently does not support the cgroup feature set required# for containers run by dockerExecStart=/usr/bin/dockerdExecReload=/bin/kill -s HUP $MAINPID# Having non-zero Limit*s causes performance problems due to accounting overhead# in the kernel. We recommend using cgroups to do container-local accounting.LimitNOFILE=infinityLimitNPROC=infinityLimitCORE=infinity# Uncomment TasksMax if your systemd version supports it.# Only systemd 226 and above support this version.#TasksMax=infinityTimeoutStartSec=0# set delegate yes so that systemd does not reset the cgroups of docker containersDelegate=yes# kill only the docker process, not all processes in the cgroupKillMode=process# restart the docker process if it exits prematurelyRestart=on-failureStartLimitBurst=3StartLimitInterval=60s[Install]WantedBy=multi-user.target

         添加文件权限

chmod +x /etc/systemd/system/docker.service

 加载、启动、设置开机启动

systemctl daemon-reload  # 重新加载单元systemctl start docker   # 启动dockersystemctl enable docker.service   # 设置开机启动

   A机器准备数据

   下载docker registry仓库镜像

docker pull docker.io/registry

    创建仓库目录

修改 /etc/docker/daemon.json文件、添加如下内容

    重启docker服务

systemctl restart docker

  运行registry镜像,并将/mnt/registry-data目录挂载到容器内的/var/lib/registry目录

docker run -d --name=registry -v /mnt/registry-data:/var/lib/registry -p 5000:5000 docker.io/registry

  下载redis镜像

docker pull redis

    修改redis镜像tag

docker tag redis  127.0.0.1:5000/redis

  将redis上传到仓库

 cd目录,查看redis是否被成功上传(mysql上传同上)

cd/mnt/registry-data/docker/registry/v2/repositories

 使用docker将registry镜像打包成registry.tar,放到/mnt目录下

docker save -o /mnt/registry.tar docker.io/registry

  将registry-data仓库目录打包成registry-data.tar.gz,放到/mnt目录下

cd /mnt
tar czvf registry-data.tar.gz registry-data  # 打包

 

 拷贝数据

将A机器上的/mnt目录下面的registry.tar和registry-data.tar.gz拷贝到B机器的/mnt目录下、

B机器运行redis、mysql镜像

  修改 /etc/docker/daemon.json文件、添加如下内容

{"insecure-registries":["127.0.0.1:5000"]
}

  重启docker服务

systemctl restart docker

   导入registry镜像

docker load -i /mnt/registry.tar

 解压registry-data仓库目录

tar xf /mnt/registry-data.tar.gz -C /mnt

运行registry镜像,并将/mnt/registry-data目录挂载到容器内的/var/lib/registry目录

docker run -d --name=registry -v /mnt/registry-data:/var/lib/registry -p 5000:5000 docker.io/registry

      从本地仓库下载下载redis镜像

docker pull 127.0.0.1:5000/redis

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/61428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图床项目进度(二)——动态酷炫首页

前言: 前面的文章我不是说我简单copy了站友的一个登录页吗,我感觉还是太单调了,想加一个好看的背景。 但是我前端的水平哪里够啊,于是在网上找了找制作动态背景的插件。 效果如下图。 如何使用 这个插件是particles.js 安装…

使用图集SpriteAtlas时,根据其中的Sprite,给 RawImage 设置 texture 的两种方法

当使用图集 SpriteAtlas 时, 从中获取的 Sprite 的 texture 是图集中整张图片,为了给 RawImage 设置 Texture,有两种方式: 方式1:使用以下扩展函数,其原理是给 RawImage 设置整张纹理,然后设置…

C语言入门篇(九)

前言   本篇分享的是部分操作符的概念与用法,从经典例题入手,带你快速了解和掌握。   收录专栏:浅谈C语言 操作符详解下 10. 逗号表达式11. 下标引用、函数调用和结构成员12. 表达式求值12.1 隐士类型转换12.2 算术转换12.3 操作符的属性…

多项式求逆

已知 F F F,求 G G G 考虑倍增 F ( x ) ∗ H ( x ) ≡ 1 ( m o d x n / 2 ) F(x) * H(x) \equiv 1 \pmod{x^{n/2}} F(x)∗H(x)≡1(modxn/2) F ( x ) ∗ G ( x ) ≡ 1 ( m o d x n / 2 ) F(x) * G(x) \equiv 1 \pmod{x^{n/2}} F(x)∗G(x)≡1(modxn/2) 假设 H H…

最大子数组和【贪心算法】

最大子数组和 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 class Solution {public int maxSubArray(int[] nums) {//记录最大结果&…

Linux土遁术之监测监测进程打开文件

分析问题过程中,追踪进程打开的文件可以在许多不同情况下有用,体现在以下几个方面: 故障排除和调试: 当程序出现问题、崩溃或异常行为时,追踪进程打开的文件可以帮助您找出问题的根本原因。这有助于快速定位错误&…

基于Spring Boot的住院病人管理系统设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频: 基于Spring Boot的住院病人管理系统设计与实现(Javaspring bootMySQL) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:Java spring…

前列腺小体外泄蛋白(PSEP)——博迈伦

前列腺小体外泄蛋白(Prostate-specific extracellular vesicle protein,简称PSEP)是一种在前列腺细胞分泌的小体外囊泡中出现的蛋白质。小体外泌物指的是由细胞分泌的膜包裹小体,其中包含多种生物活性物质,如蛋白质、R…

springboot aop实现接口防重复操作

一、前言 有时在项目开发中某些接口逻辑比较复杂,响应时间长,那么可能导致重复提交问题。 二、如何解决 1.先定义一个防重复提交的注解。 import java.lang.annotation.*;Inherited Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) Do…

vue三级市区联动

默认返回值格式:all:code、name都返回 name:只返回name code:只返回code,level:可设置显示层级 1: 省 2: 省、市 3: 省、市、区 v-model 默认值 可以是 name: [ "天津市", "天津市",…

Debian 30 周年,生日快乐!

导读近日是 Debian 日,也是由伊恩-默多克(Ian Murdock)创立的 Debian GNU/Linux 通用操作系统和社区支持的 Debian 项目 30 周年纪念日。 不管你信不信,从已故的伊恩-默多克于 1993 年 8 月 16 日宣布成立 Debian 项目&#xff0c…

C# 练习题

26. Enum(枚举) /*枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。 */using System;public class EnumTest {enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };static…

CentOS 7 Nacos 设置开机自动重启

一、说明 Nacos如果是手动启动的话,在服务器宕机或者重启后,没有自动运行,影响很多业务系统,需要每次手动执行命令 startup.sh -m standalone,才能启动 Nacos 服务,不能像docker服务一样,使用 …

博客系统后端(项目系列2)

目录 前言 : 1.准备工作 1.1创建项目 1.2引入依赖 1.3创建必要的目录 2.数据库设计 2.1博客数据 2.2用户数据 3.封装数据库 3.1封装数据库的连接操作 3.2创建两个表对应的实体类 3.3封装一些必要的增删改查操作 4.前后端交互逻辑的实现 4.1博客列表页 …

【ES】elasticsearch8.3.3

这里仅实践操作并根据实际问题进行记录笔记。 运行 ES8 我们需要在自己的电脑上安装好 Docker Desktop。接着我们运行如下的命令:出现两个异常,一个是需要使用winpty因为我使用win的docker desktop,另外一个问题是docker启动elasticsearchE…

跨屏无界 | ZlongGames 携手 Google Play Games 打造无缝游戏体验

一款经典游戏,会在时间的沉淀中被每一代玩家所怀念,经久不衰。对于紫龙游戏来讲,他们就是这样一群怀揣着创作出经典游戏的初心而聚集在一起的团队,致力于研发出被广大玩家喜爱的作品。 从 2015 年团队成立,到 2019 年走…

Ansible-palybook学习

目录 一.playbook介绍二.playbook格式1.书写格式2.notify介绍 一.playbook介绍 playbook 是 ansible 用于配置,部署,和管理被控节点的剧本。通过 playbook 的详细描述,执行其中的一系列 tasks ,可以让远端主机达到预期的状态。pl…

一点思考|漫谈 AI 中的「反馈」机制

前言:生物世界中的正负反馈机制能够促进生物进化,为生物圈的良好生态提供保障。本文探究反馈机制在深度神经网络中的体现,由于笔者知识浅薄,故仅列举个人认知范围内的以下几种「反馈」示例。(本文初稿诞生于2022年12月…

Krahets 笔面试精选 88 题——40. 组合总和 II

使用深度搜索的方法: 由于题目说候选数组中的每个数字在每个组合只能出现一次,所以,为了避免重复,在开始之前对候选数组进行升序排序,这样优先选择小的数,如果当前的数都小于目标值,则后面的数就…

find ./* -type d -empty -exec touch {}/.gitkeep \;

这是一个 Linux 下的 find 命令,用于在所有空目录中创建 .gitkeep 文件。让我们来分解一下这个命令做了什么:- find ./* : 在当前目录及其子目录中查找。 -type d : 只查找目录类型的文件。 -empty : 只找出那些空的目…