docker下运行Gitlab CE+Jenkins+Nexus3+docker-registry-frontend

DevOps
- Gitlab CE
- Jenkins
- Nexus

Gitlab CE
https://hub.docker.com/r/gitlab/gitlab-ce/
https://docs.gitlab.com/omnibus/docker/README.html
$ docker pull gitlab/gitlab-ce

sudo docker run --detach     --hostname gitlab.example.com     --publish 443:443 --publish 80:80 --publish 22:22     --name gitlab     --restart always     --volume /srv/gitlab/config:/etc/gitlab     --volume /srv/gitlab/logs:/var/log/gitlab     --volume /srv/gitlab/data:/var/opt/gitlab     gitlab/gitlab-ce:latest

或者(启用SELinux的情况)

sudo docker run --detach     --hostname gitlab.example.com     --publish 443:443 --publish 80:80 --publish 22:22     --name gitlab     --restart always     --volume /srv/gitlab/config:/etc/gitlab:Z     --volume /srv/gitlab/logs:/var/log/gitlab:Z     --volume /srv/gitlab/data:/var/opt/gitlab:Z     gitlab/gitlab-ce:latest

Local location       Container location  Usage
/srv/gitlab/data     /var/opt/gitlab     For storing application data
/srv/gitlab/logs     /var/log/gitlab     For storing logs
/srv/gitlab/config   /etc/gitlab         For storing the GitLab configuration files

其中gitlab.example.com(可不必)替换成自己的服务器域名或者ip地址,首次运行,数据库资料、文件链接等都会自动被创建,用logs查看情况:
$ sudo docker logs gitlab -f

配置文件:/etc/gitlab/gitlab.rb
可以用exec -it去编辑:
$ sudo docker exec -it gitlab vi /etc/gitlab/gitlab.rb

配置后,用restart重启
$ sudo docker restart gitlab

关于配置文件:
external_url    如果是https,可配置下,因为是在容器中,默认的80端口不需要修改。
https、SMTP详细配置:
https://docs.gitlab.com/omnibus/settings/nginx.html#enable-https
https://docs.gitlab.com/omnibus/settings/smtp.html

Jenkins
https://hub.docker.com/r/jenkinsci/blueocean/
https://jenkins.io/doc/book/installing/#docker
$ docker pull jenkinsci/blueocean

docker run   -d   -p 8080:8080   -v jenkins-data:/var/jenkins_home   -v /var/run/docker.sock:/var/run/docker.sock   --name jenkins   --restart always   jenkinsci/blueocean

官方版本:
docker run   -u root   --rm   -d   -p 8080:8080   -p 50000:50000   -v jenkins-data:/var/jenkins_home   -v /var/run/docker.sock:/var/run/docker.sock   jenkinsci/blueocean
详细介绍见前面的#docker链接

运行后,通过 docker logs jenkins -f 能看到初始管理员密码,如果没看见,可以用下面命令查看:
$ docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
打开浏览器,输入初始密码,进入安装向导,按提示配置即可。

常用插件:(**开头的应该是自带的,*为其他)
Ansible pllugin
AnsiColor
Artifactory Plugin
**Blue Ocean
Consul Plugin
Delivery Pipeline Plugin
Docker plugin
GitLab Plugin
Marathon Deployment
Maven Dependency Update Trigger
Maven Info Plugin
Maven Metadata Plugin for Jenkins CI server
Maven Release Plug-in Plug-in
Maven Repository Server Plugin
MSBuild Plugin
NodeJS Plugin
packer
Parameterized Scheduler
Pipeline Maven Integration Plugin
Pipeline NPM Integration Plugin
SSH Agent Plugin
Terraform Plugin
**Timestamper
Unleash Maven Plugin
*Gogs plugin

Nexus
https://hub.docker.com/r/sonatype/nexus3/
https://github.com/sonatype/docker-nexus3
https://www.sonatype.com/download-oss-sonatype
支持: Bower  Docker  Git LFS  Maven  npm  NuGet  PyPI  Ruby Gems  Yum Proxy
$ docker pull sonatype/nexus3
映射卷注意:因为nexus-data要求UID 200,下面是创建一个nexus-data卷后,用inspect命令查看路径,
然后手动设置本机实际路径所有者为UID 200后,再调用run命令,否则会启动失败。
docker volume create --name nexus-data
docker volume inspect nexus-data
sudo chown -R 200 /var/lib/docker/volumes/nexus-data/_data
docker run -d -p 8081:8081 -v nexus-data:/nexus-data --restart always --name nexus sonatype/nexus3
如果将配置Docker仓库在5001,还有加入 -p 5001:5001,如下:
docker run -d -p 8081:8081 -p 5001:5001 -v nexus-data:/nexus-data --restart always --name nexus sonatype/nexus3
其他类同。

用 docker logs -f nexus 查看启动日志。

测试释放成功:curl -u admin:admin123 http://localhost:8081/service/metrics/ping
更详细见:https://hub.docker.com/u/sonatype/
Default credentials are: admin / admin123

-----------------
Docker Hub(私有)
-----------------
官方:https://hub.docker.com/_/registry/
参考:https://docs.docker.com/registry/deploying/
$ docker run -d -p 5000:5000 --restart=always --name registry registry

查看有几个仓库
http://RegistryServer:5000/v2/_catalog
查看某个仓库的tags
http://RegistryServer:5000/v2/RegistryName/tags/list

存储选项(-v 宿主机全路径:容器全路径[:ro|rw],在类UNIX系统中`pwd`返回当前目录)
-v `pwd`/data:/var/lib/registry
这行意思是将当前目录下的data目录,作为容器/var/lib/registry的映射目录。
注意:Windows系统,路径要用/代替\,并且在Docker配置Shared Drivers里开启了对应盘符的共享。

假设私有Docker Hub主机名是RegistryServer,当然IP也可以,用tag命令打一个新标签,然后用push推送到服务器:
$ docker tag m2nlight/static_web RegistryServer:5000/m2nlight/static_web
$ docker images
$ docker push RegistryServer:5000/m2nlight/static_web
如果push失败:
Get https://RegistryServer:5000/v1/_ping: http: server gave HTTP response to HTTPS client
需要在客户机的Docker加入对服务器的信任配置:
mac: 进入Docker配置的Advanced页,在Insecure registries列表里加入如:RegistryServer:5000
win: 进入Docker设置的Docker Daemon选项,在右边的json格式文本框的insecure-registries后加入:RegistryServer:5000
linux: $ vim /etc/docker/daemon.json
{
  "insecure-registries": ["RegistryServer:5000"]
}
$ systemctl restart docker
重启客户机Docker生效。

被tag的“镜像”,同样适用其他镜像操作,比如rmi“删除”。

-----------------
Registry Frontend
-----------------
https://hub.docker.com/r/konradkleine/docker-registry-frontend/
https://github.com/kwk/docker-registry-frontend
$ konradkleine/docker-registry-frontend:v2
注意:v2是最新版本。

sudo docker run   -d   -e ENV_DOCKER_REGISTRY_HOST=192.168.48.10   -e ENV_DOCKER_REGISTRY_PORT=5000   -e ENV_MODE_BROWSE_ONLY=true   -p 8080:80   --restart=always   --name=registry-frontend   konradkleine/docker-registry-frontend:v2

更多参数:
(1)Docker registry using SSL encryption
 -e ENV_DOCKER_REGISTRY_USE_SSL=1
(2)SSL encryption
 -e ENV_USE_SSL=yes  -v $PWD/server.crt:/etc/apache2/server.crt:ro  -v $PWD/server.key:/etc/apache2/server.key:ro  -p 443:443 (3)Use the application as the registry
 -e ENV_REGISTRY_PROXY_FQDN=ENTER-YOUR-APPLICATION-HOST-HERE  -e ENV_REGISTRY_PROXY_PORT=ENTER-PORT-TO-YOUR-APPLICATION-HOST-HERE  -e ENV_USE_SSL=yes  -v $PWD/server.crt:/etc/apache2/server.crt:ro  -v $PWD/server.key:/etc/apache2/server.key:ro  -p 443:443  (4)其他
 -e ENV_MODE_BROWSE_ONLY=true
 -e ENV_DEFAULT_REPOSITORIES_PER_PAGE=50
 更多见 https://hub.docker.com/r/konradkleine/docker-registry-frontend/

原文地址:https://www.cnblogs.com/Bob-wei/p/8296102.html

时间: 2024-08-09 08:36:49

docker下运行Gitlab CE+Jenkins+Nexus3+docker-registry-frontend的相关文章

docker下部署gitlab

docker用来隔离应用还是很方便的,一来本身的操作较为简单,二来资源占用也比虚拟机要小得多,三来也较为安全,因为像数据库这样的应用不会再全局暴露端口,同时应用间的通信通过加密和端口转发,更加安全. Gitlab是目前比较流行的开源类Github代码管理平台.Gitlab使用Rails开发,使用PostgreSQL或MySQL数据库,Redis做缓存.一般自己搭建私有代码仓库,Gitlab通常是首选.这里简单介绍一下dockerized Gitlab. Gitlab的docker镜像早已有人做好

Docker下搭建gitlab

一.GitLab简介 GitLab 是一个用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在此基础上搭建起来的web服务.Github是公共的git仓库,而Gitlab适合于搭建企业内部私有git仓库 官网: https://about.gitlab.com/ https://github.com/gitlabhq/gitlabhq 截止本文创建时间,GitLab最新版本为v7.4.3 二.组件 7.4.3之前版本,镜像里包含所有组件,7.4.3版本镜像里只包含核心组件:nginx.s

ubunut18.04 下安装 gitlab ce版,使用清华源

gitlab官方的ubuntu安装说明 https://about.gitlab.com/install/#ubuntu 该安装说明介绍的是gitlab-ee版本 按照该说明也能安装gitlab-ce版本. 用清华源安装,有些不同. 首先信任 GitLab 的 GPG 公钥: curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null 我是ubuntu18.04, 16.0

docker下的Jenkins安装和体验【转】

作为一款优秀的持续集成工具,jenkins在日常的项目中经常会用到,本次实战我们在docker下快速搭建一个Jenkins服务,并体验其项目构建能力: 实战环境 windows.mac.linux等系统,只要装了docker服务都可以作为实战环境,我用的是ubuntu16,安装的docker版本是:17.03.2-ce: 准备文件映射路径 jenkins的容器启动后,重要的文件我们希望能保存在当前电脑,否则容器被损坏或者删除后就找不回这些文件了,因此要在当前电脑上准备一个目录作为文件映射,注意文

使用Jenkins构建Docker镜像

Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上.同时Jenkins能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性.并且Jenkins提供了大量的插件,能够完成各种任务. 今天我需要使用Jenkins构建一个Docker镜像,然后自动push到docker registry中.到了docker registry中,后面测试人员就可以把镜像发布到测试环境,测试如

在Docker中运行纸壳CMS并配置使用MySql

纸壳CMS是基于ASP.Net Core开发的可视化内容管理系统,可以跨平台部署,可以在容器中运行.接下来看看如何在docker中运行纸壳CMS. GitHub:https://github.com/SeriaWei/ZKEACMS.Core 方式一 直接运行以下命令即可在docker中运行纸壳CMS,运行成功以后,使用{IP}:5000来访问: docker run -d -p 5000:80 zkeasoft/zkeacms 注意:使用这种方式运行,数据库使用的是SQLite. 方式二 接下

Linux 使用 docker 下搭建xunsearch 搜索引擎服务

Linux 使用 docker 下搭建 xunsearch 搜索引擎服务 安装 docker 环境(菜鸟教程有说明) 安装docker说明 下载并运行 xunsearch 的服务端:docker安装xunsearch说明 docker 安装完毕后,开始安装xunsearch镜像 docker pull hightman/xunsearch 启动镜像 //镜像非开机自启 docker run --name xunsearch -d -p 8383:8383 -p 8384:8384 -v /var

docker下配置mysql 主从

本机docker下配置mysql主从 首先安装docker mysql容器 $ docker pull mysql:5.6 拉取两个相同版本mysql 分别启动mysql 并设置root用户密码为admin: //主mysql docker run -d -e MYSQL_ROOT_PASSWORD=admin --name mysql-master -v /Volumes/docker/mysql/my-m.cnf:/etc/mysql/my.cnf -p 3307:3306 mysql:5.

如何修改Docker已运行实例的端口映射

如何修改Docker已运行实例的端口映射 Docker的端口映射,往往出现在两个阶段需要处理: 1.是在docker启动前就已经确定好,哪个docker实例映射哪个端口(往往这个情况比较,需要提前做规划). 2.在docker运行过程中,需要增加端口映射的(往往这个情况比较多,凡事先运行起来,遇到问题再解决,哈哈) 那我们这一篇文章要解决已经创建的容器,如何修改端口 1)确定要修改端口的容器 dockder ps 记下容器id 2)停止运行的容器 docker stop 容器ID 3)找到容器的