一、docker-compose
1.概述
docker-compose是一个自动编排工具,可以根据dockerfile自动化部署docker容器。
主要功能
配置定义
使用YAML文件(通常命名为docker - compose.yml)来描述应用程序的服务、网络和卷等配置。
容器编排
可以同时启动、停止和管理多个相关联的容器。只需运行一个命令,如docker-compose up
就可以启动所有在docker-compose.yml文件中定义的服务对应的容器。
它会按照依赖关系正确地启动容器。
网络管理
自动创建和管理容器之间的网络连接。默认情况下,它会创建一个桥接网络,使得同一docker-compose.yml文件中的服务可以相互通信。也可以自定义网络的设置,如指定网络的子网、网关等参数。
卷挂载
方便地将主机上的目录或文件挂载到容器内部。这对于数据的持久化存储或者共享配置文件非常有用。
2.安装docker-compose
cd /usr/local/bin
mv docker-compose-linux-x8664 docker-compose
chmod 777 docker-compose
docker-compose -v
3.实例:部署lnmp
#nignx mysql php所需要的配置文件和Dockerfile已经配置完毕
#用docker-compose一键部署
vim docker-compose.yml
docker-compose -f docker-compose.yml up -d
#up -d 后台运行
二、docker-harbor
1.概述
Docker-Harbor是一个开源的企业级Docker Registry管理工具,由VMware公司开发并捐赠给CNCF(云原生计算基金会)。它扩展了Docker Distribution,增加了企业级功能,如安全、审计和多租户支持,旨在帮助企业用户更安全地存储和管理Docker镜像,并简化镜像的部署流程。
功能
- 自带图形管理的UI界面
- 能够基于角色进行权限的控制
- harbor仓库每一个组件都是依赖docker的容器构建,使用docker-compose一键部署
- 自带部署的模板
harbor的特点
- 基于角色控制,不同用户在项目中有不同的权限。harbor是按照项目来进行组织的
- 多个harbor之间可以进行镜像之间的同步
- 可以在UI界面直接对镜像进行管理,增删改查
- 自带审计功能,所有的对镜像的操作都有记录
2.安装harbor
#443端口即使被注释掉了,但是还是用的443
vim /usr/lib/systemd/system/docker.service
#修改13行
fd:// --insecure-registry 192.168.206.30 #指向到服务端
systemctl daemon-reload
systemctl restart docker
cd /opt
tar -xf harbor.v2.8.1.tar.gz -C /usr/local/
cd /usr/local/harbor
vim harbor.yml
netstat -antp | grep 80
#看80端口有没有被占用,如果被占用就关闭那个服务
./prepare
./install.sh
3.上传和下载镜像
#服务器和客户端都要安装docker
192.168.206.30 harbor服务器1
192.168.206.40 客户端
#服务端上传和下载镜像
docekr tag nginx:1.22 127.0.0.1/xy104/nginx:v1 #本地ip/项目名称/镜像名
#可以在服务器web页面上面点击拉取命令,在服务器上面执行
#客户端上传和下载镜像
vim /usr/lib/systemd/system/docker.service
13行
fd:// --insecure-registry 192.168.206.30 #指向到服务端
systemctl daemon-reload
systemctl restart docker
4.用户分类
- 项目管理员:最高权限,读写,对项目中用户进行管理,镜像扫描。
- 维护人员:对项目内的镜像可以读写,修改,但是不能扫描,也不能对用户管理
- 开发者: 只能读写,不能删除
- 访客:只能读
- 受限访客:只能读
5.仓库间镜像转移
192.168.206.30 harbor服务器1
192.168.206.55 harbor服务器2