Docker环境的搭建必须要基于Centos7.0以上版本,本文章使用的系统为:CentOS Linux release7.2.1511 (Core),查看方式见:
Docker版本更新迭代比较快,版本差异比较大建议使用版本:17.09.1-ce,安装方式见下文:
搭建过程需要使用到vim和wget等工具,安装命令如下:
yum install -y vim wget
安装阿里云EPEL源,如下:
rpm -ivh http://mirrors.aliyun.com/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
老版本的Docker被称为docker或docker-engine。如果安装了这些,请卸载它们以及相关的依赖项。
yum remove docker docker-common docker-selinuxdocker-engine
首次在新的主机上安装Docker CE之前,需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。
安装所需的软件包 yum-utils提供了yum-config-manager 效用,并device-mapper-persistent-data和lvm2由需要devicemapper存储驱动程序。
yum install -y yum-utils device-mapper-persistent-datalvm2
使用以下命令来设置稳定的存储库。即使您想从边缘或测试存储库安装构建,也总是需要稳定的存储库。
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装最新版本的Docker CE,或者转到下一步安装特定版本。
yum install -y docker-ce
警告:如果您启用了多个Docker存储库,则安装或更新而不指定版本yum install或 yum update命令将始终安装尽可能高的版本,可能不适合您的稳定性需要。
启动Docker
systemctl start docker
Docker开机自启动
systemctl enable docker
docker通过运行hello-world 映像验证安装是否正确。
docker run hello-world
详细安装过程参考docker官方文档:https://docs.docker.com/
参照1.2阿里云EPEL源安装完毕后,现在来安装pip,如下:
yum -y install certbot libevent-devel gcclibffi-devel python-devel openssl-devel python2-pip
Yum方式安装完毕pip后pip的版本是8.1.2,现在我们来升级pip版本如下:
pip install --upgrade pip
Pip版本升级完毕后,我们现在来开始安装docker-compose,使用如下命令:
pip install -U docker-compose
查看docker-compose的版本,如下:
docker-compose version
which docker-compose
我们可以直接从github上下载最新版本的harbor,如下:
#harbor官方:
https://github.com/vmware/harbor/releases
#harbor国内:
http://harbor.orientsoft.cn/
下载harbor,使用如下命令:
# harbor官方地址:
wget https://github.com/vmware/harbor/releases/download/v1.2.2/harbor-offline-installer-v1.2.2.tgz
#harbor国内地址(速度更快):
wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz
解压harbor,使用如下命令:
tar -xf harbor-offline-installer-v1.2.2.tgz
cd harbor
修改harbor配置文件,如下:
vim harbor.cfg
hostname = 192.168.109.131
安装harbor就比较简单了,直接使用install.sh脚本即可。
./install.sh
步骤一会下载相关的docker镜像,这个过程根据各自的网络情况不同花费的时间也不同,相关的docker镜像如下:
docker images
通过以上图,我们可以很明显的看出harbor已经安装完毕。
现在我们来访问harbor,http://192.168.109.131如下:
harbor默认的管理员账号为admin,密码为harbor.cfg文件中配置,默认为Harbor12345
现在登录到harbor管理控制台后台,如下:
添加私库地址为信任地址,并添加加速器地址,如下:
echo"{\"insecure-registries\":[\"192.168.109.131:80\"],\"registry-mirrors\":[\"http://bcfb7352.m.daocloud.io\"]}"> /etc/docker/daemon.json
重启docker服务,使用如下命令:
systemctl daemon-reload && systemctlrestart docker && systemctl status docker
注意:重启是出现一下问题:
执行一下指令:
rm -rf /var/run/docker.sock && systemctldaemon-reload && systemctl restart docker && systemctl statusdocker
在docker客户端拉取一个busybox测试镜像,如下:
docker pull busybox
登录到haobor私库,指定私库用户名、密码、私库地址:
docker login -u admin -p Harbor12345 192.168.109.131:80
修改busybox镜像 tag,形成新的镜像192.168.109.131:80/library/busybox:
docker tag busybox 192.168.109.131:80/library/busybox
提交新镜像192.168.109.131:80/library/busybox 到Harbor私库:
docker push 192.168.109.131:80/library/busybox
登录harbor管理控制台,如下:
要使harbor缓存远程docker镜像,需要我们做相关的配置,首先是在harbor服务器进行配置。在harbor服务器上,需要修改harbor的config.yml文件,如下:
vim common/config/registry/config.yml
proxy:
remoteurl: https://registry-1.docker.io
然后使用docker-compose命令,对harbor进行重启Harbor,如下:
docker-composestop && docker-compose rm -f && docker-compose up -d
测试harbor缓存,在docker客户端拉取一个redis镜像,如下:
docker pull redis
docker客户端拉取完毕之后,登录harbor管理控制台,如下:
通过上图,我们可以很容易的看到harbor已经缓存了最新的redis镜像。