传统架构演进 从单体到微服务

Docker常用命令

K8s集群搭建(Harbor)私服仓库(

手把手教你搭建Docker Registry私服基于SSL证书改造Registry

Docker搭建私服(本地镜像库)+实战案例(全面易懂,步骤详尽)

)

1 Docker私服仓库搭建

1.1基于容器方式搭建

vmware虚拟机使用共享目录

Linux环境安装、卸载Docker

安装完后有个hello-world的镜像在里面,用于后面的测试

修改配置让docker客户端支持http

#  vi /etc/docker/daemon.json

{
        "registry-mirrors": ["https://njrds9qc.mirror.aliyuncs.com"],
        "insecure-registries":["172.17.0.2:5000"]
}

重启docker

# systemctl daemon-reload
# systemctl restart docker

启动docker:

【#  systemctl start docker

停止docker:

#  systemctl stop docker

重启docker:

#  systemctl restart docker

查看docker状态:

#  systemctl status docker

开机启动:

#  systemctl enable docker

Docker新版本配置:

修改/usr/lib/systemd/system/docker.service

ExecStart=

末尾增加

--insecure-registry 172.17.0.2:5000

然后重启docker

查看docker概要信息

#  docker info】
拉取镜像:

# docker pull registry

执行镜像,跑启私有仓库:
#  docker run -d -v /mnt/hgfs/docker-data/registry:/var/lib/registry -p 5000:5000 --restart=always --privileged=true --name private_registry registry:latest

我的Docker客户端IP:172.17.0.1;

我的Docker私有仓库服务器IP:172.17.0.2

如何获取 docker 容器(container)的 ip 地址

打标签:

# docker tag hello-world 172.17.0.2:5000/hello-world:latest

将新的hello-world镜像上传到私有仓库:

# docker push 172.17.0.2:5000/hello-world:latest

或者在私有仓库192.168.1.161查看上传的镜像
# ls /mnt/hgfs/docker-data/registry/docker/registry/v2/repositories
或者在客户端执行以下命令查看--列出所有镜像
# curl http://172.17.0.2:5000/v2/_catalog

1.2基于宿主机方式搭建仓库

【Centos7.6略过如下安装方式:

(1)、首先检查linux有没有安装python-pip包,直接执行 yum install python-pip

(2)、没有python-pip包就执行命令 yum -y install epel-release

安装下面插件:

yum install -y python-devel;

yum install -y libevent-devel;

(3)、执行成功之后,再次执行yum install python-pip

(4)、对安装好的pip进行升级 pip install --upgrade pip

(5)、安装python3

yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

安装Python相关的模块

安装必要工具 yum-utils ,它的功能是管理repository及扩展包的工具 (主要是针对repository)

# sudo yum install yum-utils

使用yum-builddep为Python3构建环境,安装缺失的软件依赖,使用下面的命令会自动处理.

# sudo yum-builddep python

# mkdir /usr/local/python3 

curl -O https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz

tar -zxf  Python-3.7.4.tgz
cd Python-3.7.4
./configure --prefix=/usr/local/python3
make && make install

最后创建软链接

ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

CentOS系统中成功安装了python3、pip3、setuptools,查看python版本

python3 -V

安装docker-registry(两种方式:一种直接通过安装,一种基于源码安装docker-registry)

yum -y install docker-registry

停止之前启动的docker registry容器

/etc/docker/daemon.json增加"127.0.0.1:5000"

[root@centos76 bin]# vi /etc/docker-distribution/registry/config.yml
version: 0.1
log:
  fields:
    service: registry
storage:
    cache:
        layerinfo: inmemory
    filesystem:
        rootdirectory: /mnt/hgfs/docker-data/registry
http:
    addr: :5000

保存退出,启动服务

systemctl start docker-distribution

ss -tnl

创建好私有仓库之后,就可以使用 docker tag 来标记一个镜像,然后推送它到仓库。

docker pull busybox:latest

docker tag busybox 127.0.0.1:5000/busybox:latest

docker push 127.0.0.1:5000/busybox

查看镜像仓库:

curl http://127.0.0.1:5000/v2/_catalog

{"repositories":["busybox","hello-world"]}

查看共享目录:

 

查询hello-world镜像的标签列表:

curl http://127.0.0.1:5000/v2/hello-world/tags/list

{"name":"hello-world","tags":["latest"]}

docker rmi 127.0.0.1:5000/hello-world

docker pull 127.0.0.1:5000/hello-world

之前使用172.17.0.2,现在使用127.0.0.1

至此,已经完成容器安装和宿主机安装两种方式安装docker registry并共用镜像仓库以及http方式push和pull测试

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐