docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbor

docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbor

文章目录

docker-compose

Docker compose可以方便我们快捷高效地管理容器的启动、停止、重启等操作,它类似于linux下的shell脚本,基于yaml语法,在该文件里我们可以描述应用的架构,比如用什么镜像、数据卷、网络模式、监听端口等信息。

我们可以在一个compose文件中定义一个多容器的应用(比如wordpress),然后通过该compose来启动这个应用。

1)安装docker-compose

官方地址 https://github.com/docker/compose/releases

复制代码
curl -L https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

chmod a+x /usr/local/bin/docker-compose

测试并查看版本

复制代码
docker-compose version

2)用docker-compose快速部署应用

编辑wordpress的compose yaml文件

vi docker-compose.yml ##写入如下内容

复制代码
services:
   db:                   # 服务1:db
     image: mysql:5.7    # 使用镜像 mysql:5.7版本
     volumes:
       - db_data:/var/lib/mysql   # 数据持久化
     restart: always     # 容器服务宕机后总是重启
     environment:        # 环境配置
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress


   wordpress:          # 服务2:wordpress
     depends_on:       # wordpress服务启动时依赖db服务,所以会自动先启动db服务
       - db
     image: wordpress:latest    # 使用镜像 wordpress:latest最新版
     ports:
       - "8000:80"          #端口映射8000:80
     restart: always
     environment:        # 环境
       WORDPRESS_DB_HOST: db:3306     # wordpress连接db的3306端口
       WORDPRESS_DB_USER: wordpress    # wordpress的数据库用户为wordpress
       WORDPRESS_DB_PASSWORD: wordpress   # wordpress的数据库密码是wordpress
       WORDPRESS_DB_NAME: wordpress    # wordpress的数据库名字是wordpress
volumes:
    db_data: {}

这样一个wordpress就安装好了,访问ip:8000就可以进行搭建。

启动

复制代码
docker-compose up -d

查看

复制代码
docker-compose ps

还可以停止

复制代码
docker-compose stop

私有镜像仓库harbor搭建

Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是 由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。

harbor官方地址: https://goharbor.io

github地址: https://github.com/goharbor/harbor

0)提前准备一个ca证书

如果有自己的域名,可以到https://freessl.cn/ 申请免费的ssl证书

证书申请教程

http://t.csdnimg.cn/tfel6

申请好后用前两个就可以了

安装好docker-compose

1)下载harbor离线包

https://github.com/goharbor/harbor/releases

我这里下载的是2.6.2

2)将下载的包上传到linux,解压

复制代码
tar zxf harbor-offline-installer-v2.6.2.tgz -C /opt/

3)准备配置文件

复制代码
cd /opt/harbo
cp harbor.yml.tmpl harbor.yml ##将模板配置文件拷贝一份为正式的配置文件

4)编辑配置文件

复制代码
vi harbor.yml
修改 hostname: [reg.mydomain.com](http://reg.mydomain.com/) 为 hostname: [harbor.jiangrou.com](http://harbor.jiangrou.com/)
修改 certificate: /your/certificate/path 和 private_key: /your/private/key/path 为具体的证书地址
修改 harbor_admin_password 为合适的密码

5)安装

复制代码
sh install.sh   #配置文件出错这里会安装失败,证书的每个字母都不能出错。

6)服务的停止和启动

cd /opt/harbor

复制代码
docker-compose ps ##查看服务
docker-compose stop  ##关闭
docker-compose up -d ##启动

镜像推送到私有仓库harbor

首先在harbor中新建一个项目

8)拉取公共镜像

复制代码
docker pull tomcat
docker tag tomcat harbor.jiangrou.top/tang/tomcat:latest   #推送时候会用到,拉取完先打标签

9)把tomcat镜像推送到harbor

复制代码
# docker login https://harbor.jiangrou.top
输入用户名和密码

# docker push harbor.jiangrou.top/tang/tomcat:latest  #推送前要查看打的tag是否跟这个链接对应

推送成功

问题: x509: certificate signed by unknown authority

需要在客户端机器上(也就是你执行docker login的机器上)执行

复制代码
需要在客户端机器上(也就是你执行docker login的机器上)执行
1) echo -n | openssl s_client -showcerts -connect harbor.jiangrou.top:443 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >> /etc/ssl/certs/ca-bundle.trust.crt
2)systemctl restart docker

核心知识点/面试考点:

● docker-compse的yaml参数了解;

https://blog.51cto.com/u_13538361/6623629

● 如何配置非安全仓库?为什么要配置非安全?

这个无所谓

● 如何配置镜像仓库的自动清理?都有哪些策略?

https://blog.csdn.net/zhuganlai168/article/details/133737183

扩展知识点:

Docker-compose基础知识梳理 https://www.jianshu.com/p/3ec37fe0e6b2

Harbor配置优化,配置文件深度解析 https://blog.51cto.com/lidabai/5180443

相关推荐
Logan Lie1 小时前
Web服务监听地址的取舍:0.0.0.0 vs 127.0.0.1
运维·后端
Y淑滢潇潇2 小时前
RHCE 防火墙实验
linux·运维·rhce
稻谷君W2 小时前
Ubuntu 远程访问 Win11 WSL2 并固定访问教程
linux·运维·ubuntu
泡沫·2 小时前
4.iSCSI 服务器
运维·服务器·数据库
weixin_436525073 小时前
使用 idea 命令行构建 Docker 镜像并部署到云服务器
linux·docker·github
悠悠121383 小时前
告别Zabbix?我用Netdata只花10分钟就搞定了50台服务器的秒级监控(保姆级实战)
运维·服务器·zabbix
天庭鸡腿哥4 小时前
大小只有4K的软件,可让系统瞬间丝滑!
运维·服务器·windows·microsoft·everything
虚伪的空想家4 小时前
华为昇腾Atlas 800 A2物理服务器开启VT-d模式
运维·服务器·ubuntu·kvm·vt-d·直通
学渣676564 小时前
服务器端口映射
运维·服务器
红袜子i4 小时前
【问题】实验室服务器恢复记录,一个主板挂两张显卡,
运维·服务器