K8S--docker--搭建私有倉庫
一、環境準備
1、禁用swap分割槽
vim /etc/fstab
# 將下面的內容註釋掉
#/dev/mapper/centos-swap swap
2、修改主機名及時間同步
# 設定主機名 hostnamectl set-hostname harbor # 時間同步 yum -y install ntp systemctl enable ntpd systemctl start ntpd ntpdate -u cn.pool.ntp.org hwclock --systohc timedatectl set-timezone Asia/Shanghai
3、關閉防火牆及升級核心
# 關閉防火牆 Selinux systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config # 升級核心 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm yum --enablerepo=elrepo-kernel install kernel-ml -y&&sed -i s/saved/0/g /etc/default/grub&&grub2-mkconfig -o /boot/grub2/grub.cfg && reboot
二、安裝Docker、Docker-compose
1、下載Docker包
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpmyum install docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm -y yum install docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm -y
2、設定開機啟動並替換docker配置
說明一下:Docker預設從官方拉取映象,並且從1.12版本之後,預設私有倉庫是使用https來進行連線,我們需要將使用私服的主機上docker啟動檔案進行修改,在啟動命令新增--insecure-registry 192.168.1.197 Docker-compose Install,其中IP為主機IP
# 設定開機啟動並啟動docker systemctl enable docker systemctl start docker # 替換docker相關配置 sed -i '/ExecStart=\/usr\/bin\/dockerd/i\ExecStartPost=\/sbin/iptables -I FORWARD -s 0.0.0.0\/0 -d 0.0.0.0\/0 -j ACCEPT' /usr/lib/systemd/system/docker.service sed -i '/dockerd/s/$/ \-\-storage\-driver\=overlay2 --insecure-registry 172.20.10.6/g' /usr/lib/systemd/system/docker.service
3、Docker Compose安裝
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose #賦權 chmod +x /usr/local/bin/docker-compose #檢視許可權 docker-compose --version
Docker-Compose常用命令
docker-compose up -d ###後臺啟動,如果容器不存在根據映象自動建立 docker-compose down -v ###停止容器並刪除容器 docker-compose start ###啟動容器,容器不存在就無法啟動,不會自動建立映象 docker-compose stop ###停止容器
三、安裝Harbor
1、下載Harbor
wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.5.0.tgz tar xf harbor-offline-installer-v1.5.0.tgz
2、修改harbor配置檔案harbor.cfg
將hostname修改為IP,不能使用localhost和127.0.0.1,對於配置檔案引數解釋如下所示
[root@master harbor]# grep -Ev "^$|^[#;]" harbor.cfg # Harbor版本 _version = 1.5.0 # hostname 設定訪問地址,可以使用IP/域名,不可以設定127.0.0.1 && localhost hostname = 192.168.60.24 # 訪問協議,預設是http,也可以設定https,如果設定https,則nginx ssl需要設定on ui_url_protocol = http # Job 最大程序數 max_job_workers = 50 # 是否建立證書,建立證書將會在下面的路徑下生成 customize_crt = on ssl_cert = /data/cert/server.crt ssl_cert_key = /data/cert/server.key # 私鑰儲存路徑 secretkey_path = /data # 設定日誌大小 admiral_url = NA log_rotate_count = 50 log_rotate_size = 200M # 是否使用代理 http_proxy = https_proxy = no_proxy = 127.0.0.1,localhost,ui # 郵箱設定,傳送重置密碼郵件時使用 email_identity = email_server = smtp.mydomain.com email_server_port = 25 email_username = [email protected] email_password = abc email_from = admin <[email protected]> email_ssl = false email_insecure = false # 安裝Harbor後,管理員UI登陸的密碼,預設是Harbor12345 harbor_admin_password = Harbor12345 # 認證方式,這裡支援多種認證方式,比如LDAP、資料庫認證。預設是db_auth auth_mode = db_auth # LDAP認證時配置項 ldap_url = ldaps://ldap.mydomain.com ldap_basedn = ou=people,dc=mydomain,dc=com ldap_uid = uid ldap_scope = 2 ldap_timeout = 5 ldap_verify_cert = true ldap_group_basedn = ou=group,dc=mydomain,dc=com ldap_group_filter = objectclass=group ldap_group_gid = cn ldap_group_scope = 2 #是否開啟自動註冊 self_registration = on # Token有效時間,預設30分鐘 token_expiration = 30 # 使用者建立專案許可權控制,預設是everyone(所有人),也可以設定為adminonly(管理員) project_creation_restriction = everyone # Mysql資料庫root使用者預設密碼root123,根據實際時使用來進行修改 db_host = mysql db_password = root123 db_port = 3306 db_user = root # Redis配置 redis_url = redis:6379 clair_db_host = postgres clair_db_password = password clair_db_port = 5432 clair_db_username = postgres clair_db = postgres uaa_endpoint = uaa.mydomain.org uaa_clientid = id uaa_clientsecret = secret uaa_verify_cert = true uaa_ca_cert = /path/to/ca.pem registry_storage_provider_name = filesystem registry_storage_provider_config =
3、安裝
./install.sh
4、驗證
docker images
docker-compose ps
四、訪問Harbor
直接訪問IP即可,預設為80埠,如果要修改埠,可以修改docker-compose.yaml對應服務的對映
管理員使用者名稱為admin,密碼為harbor.cfg配置檔案中配置的密碼
五、客戶端免HTTPS
這個是為了可以使用http的方式上傳映象
echo '{ "insecure-registries":["172.20.10.6"] }' > /etc/docker/daemon.json # 重啟docker
service docker restart
# 重啟 harbor
exit 後重新連線
驗證:
docker login 172.20.10.6
六、配置私有倉庫
1、建立使用者:
2、新建專案:
3、檢視拉取映象命令
點選專案,在專案中新增人員:
4、拉取映象
修改/etc/docker/daemon.json
registry-mirrors:映象加速地址;insecure-registries:Docker如果需要從非SSL源管理映象,這裡加上
{ "registry-mirrors":["https://7bc3o1s2.mirror.aliyuncs.com"], "insecure-registries":["192.168.124.21"] }
拉取Nginx映象作為測試使用
docker pull nginx:1.16
給映象打上標籤 - 映象倉庫地址/專案名稱/標籤資訊
docker image tag nginx:1.16 172.20.10.6/lcltest/nginx:lcl
登入倉庫
docker login 172.20.10.6
複製第3步中檢視拉取映象命令中的命令,修改映象源名稱和tag,並設定自己的映象名稱,打完映象後,將映象推送至映象倉庫。
docker tag nginx:1.16 192.168.124.21/nginx/lcltestnginx:lcl docker images docker push 192.168.124.21/nginx/lcltestnginx:lcl
說明:文章中有的ip是172.20.10.6,有的是192.168.124.21,是因為我在公司的電腦上和家裡電腦上都做了部分驗證,導致前後ip可能不一致。
-----------------------------------------------------------------------------------------------------------------------------
---------------------------------------------
朦朧的夜 留筆~~