京东云原生容器部署私有镜像仓库

京东云原生容器私有镜像仓库
私有镜像仓库是可作为客户对内部容器镜像的存储、管理统一平台,相比公有镜像仓库可以提供更好的性能、安全性和可管理性。
目前京东云已经提供容器镜像仓库产品,可以直接使用。
以下以Harbor为例讲解客户搭建私有镜像仓库,Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器:
安装步骤:
1、购买京东云服务器
a、在京东云控制台购买一台京东云服务器,详见购买京东云服务器Linux。
b、根据容器部署区域选择,选择同区域或者较近区域。目前容器只在华北-北京上线,选择华北-北京购买京东云服务器。
c、操作系统,建议Ubuntu 16.04或者Centos 7.4
d、京东云服务器配置要求最低2核4GB,建议4核8GB。
e、带宽会影响镜像下载速度,越大越好,可以根据镜像大小以及批量购买的数量综合而定。f、购买了一台公网地址为114.67.241.169的京东云服务器。以root方式登录京东云服务器。
2、部署Docker

Ubuntu 16.04部署方式
apt-get updateapt-get -y install apt-transport-https ca-certificates curl software-properties-commoncurl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | apt-key add -add-apt-repository "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"apt-get updateapt-get install -y docker-ceCentos 7.4部署方式 yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repoyum makecache fastyum -y install docker-ceservice docker start3、安装Docker-Compose

Ubuntu 16.04部署方式
apt-get install python-pip –ypip install docker-composeCentos 7.4部署方式 yum install python-pip –ypip install docker-compose4、下载解压Harbor wget http://harbor.orientsoft.cn/harbor-v1.4.0/harbor-offline-installer-v1.4.0.tgztar xf harbor-offline-installer-v1.4.0.tgz5、申请Https证书

可以在https://freessl.org/申请免费的证书。以域名harbortest.jdpoc.com为例,需要该域名指向购买京东云服务器的IP地址114.67.241.169。
如果没有域名,可以在京东云域名服务申请域名。
CA证书和证书全部内容保存到/data/cert/server.crt;私钥内容保存到/data/cert/server.key

cd ..mkdir -p /data/certcd /data/certvim server.crtvim server.keycd ..cd ..cd root6、部署Harbor 修改Harbor配置 cd harborvim harbor.cfg有以下四个参数需要修改内容如下

i. 改为用户的域名地址。

hostname = harbortest.jdpoc.com ii. 修改为https,京东云使用https协议对镜像仓库相关信息进行加密传输,需要支持https ui_url_protocol = httpsiii. 为了安全,建议客户修改登录密码。 harbor_admin_password = iv. 关闭注册账户功能。只能通过管理员账户购买新用户。 self_registration = off7、使用Harbor购买私有镜像仓库

购买私有的项目,登陆harbor网站,选择新建项目,项目名称为test,访问级别不选择公开。
购买镜像、购买目录

mkdir -p /etc/docker/certs.d/harbortest.jdpoc.com 需要将域名/root/cert/server.crt密钥拷贝至购买的目录/etc/docker/certs.d/harbortest.jdpoc.com

本机可以使用以下命令

cp /data/cert/server.crt !$ 登录Harbor docker login harbortest.jdpoc.com 登录成功

8、构建和上传镜像
购买Dockerfile文件

mkdir nginx-dockerfilecd nginx-dockerfilevim Dockerfile Dockerfile内容如下: FROM nginxRUN echo 'h1Hello, JD Cloud!/h1' /usr/share/nginx/html/index.htmlEXPOSE 80备注: 这个Dockerfile包含两条指令:
FROM: 必不可少的命令,从某个镜像作为基,以centos为例。如 FROM image_name ,或者 FROM image_name:. 如果不加tag,默认为latest。先从本地镜像仓库去搜索基镜像,如过本地没有,在网上docker registry查询。
RUN:建立新的镜像时,可以执行在系统里的命令,如安装特定的软件以及设置环境变量。
EXPOSE:开放容器内的端口,但不和宿主机进行映射。方便在宿主机上进行开发测试。格式为:EXPOSE 端口1 [端口2...]

除了FROM、RUN、EXPOSE指令外,还有以下常见指令:
ENV:设置系统环境变量,格式有两种ENV ;ENV = =...
MAINTAINER:标明该Dockerfile作者及联系方式
CMD:设置执行的命令,经常用于容器启动时指定的某个操作。如执行自定义脚本服务,或者是执行系统命令。CMD 只能存在一条,如在Dockerfile中有多条CMD的话,只有最后一条CMD生。格式为:CMD 命令

执行build购买镜像
docker build -t newnginx . 为镜像打tag docker tag newnginx harbortest.jdpoc.com/test/newnginx:latest push镜像到私有镜像仓库 docker push harbortest.jdpoc.com/test/newnginx:latest9、

在容器服务的镜像仓库认证信息添加镜像仓库认证信息
购买成功后容器服务器列表页,该容器的公网IP为116.196.76.86

10、访问容器
输入http://116.196.76.86/,验证成功。

标签

发表评论