Ubuntu18.04搭建内网镜像库harbor操作步骤

1.搭建docker

apt-get update
 apt-get upgrade
 docker ps -a
 sudo apt-get remove docker docker-engine docker.io containerd runc
 sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
 sudo apt-key fingerprint 0EBFCD88
 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs)      stable"
 sudo apt-get install python3
 python3 -V
 sudo apt install python3-pip
 pip3 -V
 sudo apt-get install docker.io
 sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
 wget -qO- https://get.docker.com/ | sh
 systemctl start docker

2.搭建harbor和docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose        下载docker-compose1.24  版本要是很低的话执行harbor的脚本时会报版本问题
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose     这个通过daocloud下载会比hub快
sudo chmod +x /usr/local/bin/docker-compose      给docker-compose可执行的权限
注:python3和openssl默认都装了
wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-online-installer-v1.8.1.tgz   下载harbor包
tar zxvf harbor-online-installer-v1.8.1.tgz
cd harbor/
vim harbor.yml
将hostname字段后改为自己harbor镜像库的IP
其他的根据需求再改
之后执行./install.sh  可能会出现docker-compose版本的问题 
----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at http://***.***.***.*** 
For more details, please visit https://github.com/goharbor/harbor .
这就是安装成功了 之后就可以通过web去访问harbor了 http://***.***.***.***
 账户默认是admin  密码:Harbor12345

3.通过本地访问harbor实现镜像上传和下载
安装docker 略…
安装完成后需要将harbor的IP指定一下 代表下载的话可以去harbor里下载

vim /etc/docker/daemon.json
{"insecure-registries": ["***.***.***.***"]}      harbor的IP
之后重启服务
systemctl daemon-reload
systemctl restart docker
之后用本地docker尝试登录harbor
docker login   ***.***.***.***   就可以登录了    也可以  docker login -u admin -p Harbor12345 ***.***.***.***  指定账户和密码
--------------------------------------------------------------------
之后可以下载一个镜像
docker pull nginx
打一个标签   这样的会上传到harbor默认的library项目中
docker tag nginx:latest  ***.***.***.***/library/nginx
docker push ***.***.***.***/library/nginx
这样上传上去的话harbor会生成一个library/nginx的镜像 标签还是默认的latest
----------------------------------------------------------------------
docker tag  nginx:latest  ***.***.***.***/library/nginx:v1
docker push  ***.***.***.***/library/nginx:v1
例如再打一个标签v2
docker  tag  nginx:latest  ***.***.***.***/library/nginx:v2
docker push   ***.***.***.***/library/nginx:V2
这样在harbor的library/nginx中就会有v1和v2标签的镜像了
打标签的格式    docker  tag  本地镜像   harbor的IP/项目/镜像仓库:标签(标签有多个)
-------------------------------------------------------------------------------------
这个项目也就是harbor存储镜像的空间名称   类似于目录然后里面放文件,可以创建多个 比如说在harbor  web界面创建了一个test_images的项目
那么就可以  docker   tag  nginx:latest ***.***.***.***/test_images/nginx
		  docker   push   ***.***.***.***/test_images/nginx
		  有了新版本就可以  docker  tag nginx:latest ***.***.***.***/test_images/nginx:V1
		  docker push ***.***.***.***/test_images/nginx:V1
		  这样在harbor的test_images项目中会产生一个镜像名为test_images/nginx的镜像   但是有两个标签为:一个版本为latest一个为V1     
--------------------------------------------------------------------------


4.由于harbor需要底层很多容器支持,所以一旦出现断电或者重启服务器时,那么docker的容器也会自己stop掉,然后就需要一个一个去start,很费劲 ,下面设置harbor开机自启动的

将 harbor 配成 systemd 的 service,添加配置文件 vim /lib/systemd/system/harbor.service ,内容如下:

[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/docker-compose -f /harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f /harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
其中 “-f” 后 指定自己harbor安装的路径安装在哪就指定哪 要不是不生效

systemctl enable harbor
systemctl start harbor
systemctl status harbor
如果不把以上内容添加到以上配置文件中,直接systemctl enable harbor 是会出问题的奥

效果:
在这里插入图片描述
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201105145047385.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2IxMTU5NDExNzE2,size_16,color_FFFFFF,t_70#pic_center
在这里插入图片描述
以下为基于已有镜像的容器创建
docker commit
参数:
-a:作者信息
-m:提交信息
-p:提交时暂停容器运行

例子:

启用容器

查看容器ID

此容器的ID为”c79598cc425a”
命令如下:
docker commit -m “add a new file” -a “zhangsan” c79598cc425a nginx_cp:1

[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx_cp 1 155a2a88437d 7 seconds ago 181.2 MB
nginx 1 64d97232b585 8 minutes ago 181.2 MB

镜像已经创建完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值