侧边栏壁纸
  • 累计撰写 59 篇文章
  • 累计创建 52 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

harbor (docker compose)安装

木东
2019-05-04 / 0 评论 / 0 点赞 / 51 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

企业级私有仓库harbor部署

硬件环境

  • CPU 至少2G,最好4G
  • 内存 至少4G,最好8G
  • 磁盘 至少40G,最好160G

软件环境

  • docker版本 17.03.0-ce +或更高版本
  • docker-compose 版本 1.18.0或更高版本
  • Openssl 版本最新,为harbor生产必要的证书

网络端口

  • 443 HTTPS Harbor端口和核心API将接受此端口上的https协议请求,此端口可以在配置文件中更改
  • 4443 HTTPS 只有在启用“公证”时才需要连接到Dock的Docker Content Trust服务,此端口可以在配置文件中更改
  • 80 HTTP Harbor端口和核心API将接受此端口上的http协议请求

1.安装docker

yum -y install docker-ce
systemctl enable docker
systemctl start docker

2.安装docker-compose

下载安装包docker-compose-linux-x86_64.zip

unzip docker-compose-linux-x86_64.zip
chmod +x docker-compose
mv docker-compose /usr/bin/

官方安装方法:

curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version

3.安装Harbor

下载解压

下载地址:https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-offline-installer-v1.8.0.tgz

tar   -zxvf   harbor-offline-installer-v1.8.0.tgz  -C  /usr/local/workspace

进入harbor 解压后文件目录

cd /usr/local/workspace/harbor
-rw-r--r-- 1 root root 556153903 May 16 19:55 harbor.v1.8.0.tar.gz
-rw-r--r-- 1 root root      4839 May 16 19:54 harbor.yml
-rwxr-xr-x 1 root root      5088 May 16 19:54 install.sh
-rw-r--r-- 1 root root     11347 May 16 19:54 LICENSE
-rwxr-xr-x 1 root root      1654 May 16 19:54 prepare

说明:从 1.8.0 后,harbor配置文件由原先的 harbor.cfg 改为 harbor.yml

配置harbor.yml

较重要参数说明:

hostname :目标主机的主机名,用于访问Portal和注册表服务。它应该是目标计算机的IP地址或完全限定的域名(FQDN),例如,192.168.1.10或reg.yourdomain.com。不要使用localhost或127.0.0.1作为主机名 - 外部客户端需要访问注册表服务,这里修改为我们的主机ip即可  例如修改为  reg.lyndon.com

data_volume: 存储  harbor  数据的位置。   这里可以修改 为   /usr/local/workspace/harbor/data

harbor_admin_password:管理员的初始密码。此密码仅在Harbor首次启动时生效。之后,将忽略此设置,并且应在Portal中设置管理员密码。请注意,默认用户名/密码为admin / Harbor12345。

关于端口配置:

http:
    port:你的http的端口号
https:用于访问Portal和令牌/通知服务的协议。如果启用了公证,则必须设置为https。请参阅使用HTTPS访问配置Harbor。
    port:https的端口号
    certificate:SSL证书的路径,仅在协议设置为https时应用。
    private_key:SSL密钥的路径,仅在协议设置为https时应用。

安装

执行 ./prepare

./prepare

执行 ./install.sh

./install.sh

查看启动情况

docker-compose ps

登录:htts://reg.lyndon.com
用户名:admin 密码:Harbor12345

重启命令:

重启docker

systemctl daemon-reload
systemctl restart docker.service

重启harbor仓库

cd /usr/local/workspace/harbor

执行命令

docker-compose stop
docker-compose up -d

4.使用

4.1 配置免https

方法一:修改 /etc/docker/daemon.json

vi /etc/docker/daemon.json	//加上允许的仓库

{
  "insecure-registries":[
    "reg.lyndon.com"
  ]
}

方法二:修改 docker.service

cd /usr/lib/systemd/system

vi docker.service	//修改 ExecStart,添加  --insecure-registry 参数

ExecStart=/usr/bin/dockerd --insecure-registry 10.10.55.55 --insecure-registry reg.lyndon.com

两种方法都需要重启docker和harbor

重启docker

systemctl daemon-reload
systemctl restart docker.service

重启harbor仓库

cd /usr/local/workspace/harbor

执行命令

docker-compose stop
docker-compose up -d

4.2 上传镜像

linux 上登录harbor仓库

docker login  reg.lyndon.com

reg.lyndon.com 表示 linux服务器地址,请换成自己的服务器ip,注意要说明自己登陆哪个ip,不然默认会登陆到docker hub,即docker官方仓库

修改待上传镜像的tag

docker tag nginx:1.16.0  reg.lyndon.com/common/nginx:1.16.0

上传镜像

docker push reg.lyndon.com/common/nginx:1.16.0

到此,开发环境的harbor安装足够用,如果要生产上试用harbor,请务必配置证书,使用https访问

自签证书使用https

自签证书

mkdir ssl
cd ssl

genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=TW/ST=Taipei/L=Taipei/O=example/OU=Personal/CN=reg.lyndon.com" \
-key ca.key \
-out ca.crt

openssl genrsa -out reg.lyndon.com.key 4096
openssl req -sha512 -new \
-subj "/C=TW/ST=Taipei/L=Taipei/O=example/OU=Personal/CN=yourdomain.com" \
-key reg.lyndon.com.key \
-out reg.lyndon.com.csr

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=reg.lyndon.com
DNS.2=reg.lyndon.com
DNS.3=reg.lyndon.com
EOF

openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in reg.lyndon.com.csr \
-out reg.lyndon.com.crt

配置harbor

vim harbor.yml	// 修改以下:
5 hostname = reg.lyndon.com
21 ssl_cert = ./ssl/reg.lyndon.com.crt
22 ssl_cert_key = ./ssl/reg.lyndon.com.key
60 harbor_admin_password = 12345
./prepare
./install.sh

验证harbor

查看harbor容器:

docker-compose ps

Name                     Command               State          P

harbor-adminserver   /harbor/start.sh                 Up
harbor-db            /usr/local/bin/docker-entr ...   Up      3306/tcp
harbor-jobservice    /harbor/start.sh                 Up
harbor-log           /bin/sh -c /usr/local/bin/ ...   Up      127.0.0.1:1514->10514/tcp
harbor-ui            /harbor/start.sh                 Up
nginx                nginx -g daemon off;             Up      0.0.0.0:443->443/tcp, 0.0.0.0:
registry             /entrypoint.sh serve /etc/ ...   Up      5000/tcp

1.docker数据挂载:
volume:docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)
管理卷:
创建:docker volume create 卷名
列出:docker volume ls
查看:docker volume inspect 卷名

		清理:docker container stop 容器名
			 docker container rm 容器名
		 	 docker volume rm 卷名

	用卷创建容器:
		(1) docker run -itd --name=容器名 --mount src=卷名,dst=容器内路径 镜像名
		(2) docker run -itd --name=容器名 -v 卷名:容器内路径 镜像名


bind mounts:可以存储在宿主机系统的任意位置
	用卷创建容器:
		(1) docker run -itd --name=容器名 --mount type=bind,src=宿主机路径,dst=容器内路径 镜像名
		(2) docker run -itd --name=容器名 -v 宿主机路径:容器内路径 镜像名

tmpfs:挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统

2.docker网络模式

bridge:默认网络,Docker启动后默认创建一个docker0网桥,默认创建的容器也是添加到这个网桥中

host:容器不会获得一个独立的network namespace,而是与宿主机共用一个。

none:获取独立的network namespace,但不为容器进行任何网络配置。

container:与指定的容器使用同一个network namespace,网卡配置也都是相同的。

自定义:自定义网桥,默认与bridge网络一样。

容器访问外部网络:
	容器eth0 --> host veth --> docker0 --> iptables snat --> default route --> 外网

外部网络访问容器:

3.安装harbor
	下载离线包harbor-offline-installer-v1.4.0.tgz
	tar xf harbor-offline-installer-v1.4.0.tgz
	cd harbor

docker构建持续集成环境:
1、CI/CD介绍
2、发布流程设计
3、部署Git服务器
4、部署Harbor镜像仓库
5、构建业务基础镜像
6、测试服务器安装Docker
7、Jenkins安装
8、Jenkins基本配置
9、Jenkins创建项目
10、测试

docker 批量删除
杀死所有正在运行的容器
docker kill $(docker ps -a -q)

删除所有已经停止的容器
docker rm $(docker ps -a -q)

删除所有未打 dangling 标签的镜像
docker rmi $(docker images -q -f dangling=true)

删除所有镜像
docker rmi $(docker images -q)

强制删除镜像名称中包含“doss-api”的镜像
docker rmi --force ​(docker images | grep doss-api | awk '{print 3}')

镜像导出:
docker save -o centos.7.tar.gz centos:7
docker load -i centos.7.tar.gz

执行镜像构建:
docker build -t promethus-nginx:v1.0 .
docker tag promethus-nginx:v1.0 10.50.183.31/base/promethus-nginx:v1.0
docker push 10.50.183.31/base/promethus-nginx:v1.0

0

评论区