GitLab 是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目。它拥有与 Github 类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序 (Wall) 进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
在/usr/local/docker/gitlab文件夹中创建docker-compose.yml
version: '3' services: web: image: 'twang2218/gitlab-ce-zh:版本号' restart: always hostname: 'IP' environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url 'http://IP' gitlab_rails['gitlab_shell_ssh_port'] = 2222 unicorn['port'] = 8888 nginx['listen_port'] = 80 ports: - '80:80' - '8443:443' - '2222:22' volumes: - /usr/local/docker/gitlab/config:/etc/gitlab - /usr/local/docker/gitlab/data:/var/opt/gitlab - /usr/local/docker/gitlab/logs:/var/log/gitlab由于gitlab需要较高的配置,所以虚拟机应分得最少2G内存,启动快慢跟计算机的配置有关
Nexus 是一个强大的仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问。
同理在/usr/local/docker/nexus/ 目录下创建docker-compose.yml
version: '3.1' services: nexus: restart: always image: sonatype/nexus3:版本号 container_name: nexus ports: - 8081:8081 volumes: - /usr/local/docker/nexus/data:/nexus-data如果没有权限的话需要为data目录加上权限:chmod 777 /usr/local/docker/nexus/data
安装完成之后 用户名为admin 密码根据提示查找 同gitlab一样,启动需要较长的时间
官方的 Docker Hub 是一个用于管理公共镜像的地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要 Docker Registry,它可以用来存储和管理自己的镜像。
同理,需要在/usr/local/docker/registry/目录中创建docker-compose
version: '3.1' services: registry: image: registry:版本号 restart: always container_name: registry ports: - 5000:5000 volumes: - /usr/local/docker/registry/data:/var/lib/registry在 /etc/docker/daemon.json中添加此内容
{ "registry-mirrors": [ "https://registry.docker-cn.com" ], "insecure-registries": [ "ip:5000" ] }之后重新启动docker
$ sudo systemctl daemon-reload $ sudo systemctl restart docker用docker info查询是否生效
私服安装成功后就可以使用 docker 命令行工具对 registry 做各种操作了。然而不太方便的地方是不能直观的查看 registry 中的资源情况。如果可以使用 UI 工具管理镜像就更好了。这里介绍两个 Docker Registry WebUI 工具
ps:此配置可以在docker registry的docker-compose.yml中添加
访问 http://ip:8080