容器镜像构建以及harbor部署
Linux中的Namespace
Namespace又称命名空间,主要做访问隔离。其原理是针对一类资源进行抽象,并将其封装在一起提供给一个容器使用,因为每个容器都有自己的抽象,而它们彼此之间是不可见的,所有就可以做到访问隔离。
Namespace是将内核的全局资源做封装,使得每个namespace都有一份独立的资源,因此不同的进程在各自的namespace内对同一种资源的使用不会互相干扰。
Cgroup
Cgroup 是 Control group 的简称,是 Linux 内核提供的一个特性,用于限制和隔离一组进程对系统资源的使用。对不同资源的具体管理是由各个子系统分工完成的。
它主要有以下子系统,并且各个子系统作用如下:

验证系统Cgroup:
环境:centos7.6系统
如下图所示:

CGROUP中的内存模块:

有了以上的chroot、namespace、cgroups就具备了基础的容器运行环境
2.完成之后,执行:
[root@docker-singel centos]# docker build -t centos-base:v1 .
[root@docker-singel centos]# docker run -it --name=centos-base centos-base:v1 bash
查看结果,并验证:

[root@docker-singel nginx]# mkdir /wwwroot
[root@docker-singel nginx]# echo "dockfile test" >/wwwroot/index.html
[root@docker-singel nginx]# docker run -d -p 8083:80 -v /wwwroot/:/usr/local/nginx/html --name nginx_v2 dockfile-nginx:v1
web 访问验证:

Dockerfile构建tomcat镜像:
1.准备镜像包:
apache-tomcat-9.0.11.tar.gz和jdk-8u201-linux-x64.tar.gz
2.创建目录
[root@docker-singel ~]# mkdir /dockfile/tomcat/
[root@docker-singel ~]# cd /dockfile/tomcat/
3.Dockfile构建
编辑Dockfile文件,内容如下:

4.执行dockbuild命令
[root@docker-singel tomcat]# docker build -t dockfile-tomcat:v1 .
执行成功后:
验证

运行镜像:
[root@docker-singel tomcat]# docker run -d -p 8084:8080 --name tomcat_v1 dockfile-tomcat:v1
web验证:

部署Harbor私有云仓库
环境准备:
系统Centos7.6 1810
1.系统安装Docker环境(这里已安装)
安装 docker-compose. 并赋予执行权限
[root@harbor ~]# curl -L https://get.daocloud.io/docker/compose/releases/download/1 .24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
[root@harbor ~]# chmod +x /usr/local/bin/docker-compose
2.安装harboor
这里准备的版本是离线版:harbor-offline-installer-v1.8.2.tgz
[root@harbor ~]# tar xf harbor-offline-installer- v1.8.2.tgz -C /usr/local/
[root@harbor ~]# cd /usr/local/harbor/
[root@harbor ~]# vim harbor.cfg
找到如下行:
hostname = 192.168.122.18 将hostname改成harbor服务器的IP
harbor_admin_password = 123 admin用户的默认 密码,我这里改为简单的123
[root@harbor harbor]# ./install.sh(这里可以加扫描参数)
3.安装完成后,测试访问

为了做高可用性,配置另外一台一样的,方法同上
测试访问:

4. 2台harbor做仓库同步,配置如下:
172.16.1.71上配置

172.16.1.72上配置

172.16.1.71上同步配置

172.16.1.72上同步配置

5.Docker上测试镜像上传同步
[root@docker-singel ~]# docker tag dockfile-tomcat:v1 172.16.1.71/n56/dockfile-tomcat:v1
[root@docker-singel ~]# docker push 172.16.1.71/n56/dockfile-tomcat:v1
6.harbor 验证


可以看到2台镜像已经同步
haproxy+keepalive反向代理harbor
环境准备:
1.准备一台服务器,并安装haproxy+keepalive(这里已经安装好,步骤不做演示)
更改配置文件:
[root@lb haproxy]# vim haproxy.cfg
添加如下行:

完成后重启haproxy服务
2.Docker验证

3.harbor服务端查看


发现2台已经都有上传的镜像,测试成功
4.haproxy验证
关闭其中一台harbor服务器

登录docker服务器,再上一个镜像

可以看到上传成功,测试完成。

浙公网安备 33010602011771号