docker构建maven私服nexus与gitlab

docker 安装

1、判断是否已经安装过了,安装过了就进行删除
[root@localhost ~]# rpm -qa|grep docker
docker-ce-17.12.0.ce-1.el7.centos.x86_64
2、rpm -e docker-ce****  && yum remove -y docker-ce && rm -rf  /var/lib/docker-*  ///删除
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -rV
7、安装docker
$ sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce
yum install docker-ce-18.03.0.ce-1.el7.centos   //yum install docker-ce-version
8、启动并加入开机启动
$ sudo systemctl start docker   //|stop|status
$ sudo systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version

安装中出现的问题

1、因为之前已经安装过旧版本的docker,在安装的时候报错如下:

Transaction check error:
  file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
  file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
2、卸载旧版本的包
$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

3、再次安装docker

$ sudo yum install docker-ce
使用阿里云加速Docker
Docker官方镜像网站部署在外网,因此我们国内下载比较慢。看了一下国内最好的Docker加速服务就是阿里云了。阿里云的其他镜像比如Maven镜像之类的也都不错。

首先需要注册一个阿里云的帐号,可能还需要其他一点信息。然后进入容器Hub服务控制台(https://cr.console.aliyun.com),中间有一个加速器。我们点击它之后,阿里云会为我们创建一
https://9ubrspe4.mirror.aliyuncs.com
个专属加速器地址。


然后需要检查Docker客户端的版本,如果小于1.10,只能按照自己系统版本寻找相应的办法了。如果大于等于1.10,就可以直接使用下面的配置方法。配置方法很简单,
在vi /etc/docker/daemon.json中添加一段配置。如果没有该文件则创建。

{
    "registry-mirrors": ["https://9ubrspe4.mirror.aliyuncs.com"]
}
然后重启Docker服务。

sudo systemctl daemon-reload
sudo systemctl restart docker

Maven私服nexus搭建

使用docker安装nexus
查找镜像
docker search nexus
选取使用次数较多是镜像 拉取镜像
docker pull sonatype/nexus3
查看拉取的镜像
docker images

启动容器
使用nexus3镜像创建并启动一个容器,然后指定暴露8081端口到对应主机的8081端口
[root@165 /]# mkdir -p /home/nexus-data
[root@165 /]# chmod 777 /home/nexus-data

将容器内部/var/nexus-data挂载到主机/root/nexus-data目录。1\
docker run -d -p 8081:8081 --name nexus -v /nexus-data:/var/nexus-data --restart=always sonatype/nexus3
docker run -d -p 8081:8081 --name nexus --restart=always sonatype/nexus3

8081:nexus3网页端
8082:docker(hosted)私有仓库,可以pull和push
8083:docker(proxy)代理远程仓库,只能pul
8084:docker(group)私有仓库和代理的组,只能pull

此过程为后台运行,运行大概一到两分钟,
如何确定是否启动成功?
docker inspect 容器ID   如果分配了Ip表示启动成功
查看容器日志(查看启动失败日志)
docker logs nexus

docker restart nexus

3、关闭防火墙
systemctl stop firewalld
此时在浏览器输入:http://ip:8081即可看到以下页面:(ip为远程主机的ip地址)
在这里插入图片描述
点击右上方的Sign in进行登录,初始账号密码为admin/admin123.请登录后修改密码

私服配置

4、创建仓库,点击Create repository,然后选择maven2(hosted)然后输入仓库名称(test-release)。在version policy中选择这个仓库的类型,这里选择release,在Deployment policy中选择Allow redeploy(这个很重要).
5、点击左侧菜单栏的Users菜单,然后点击Create local user.我这里创建了一个用户,账号密码都是:mayikt
6、Setting.xml加入以下配置
<servers>
      <server>
        <id>mayikt</id>
       <username>mayikt</username>
        <password>mayikt</password>
      </server>
</servers>
7、创建项目,将下列配置加入项目pom文件
<distributionManagement>
    <repository>
        <!--此名称要和settings.xml中设置的ID一致-->
        <id>mayikt</id>
        <url>http://192.168.1.155:8081/repository/mayikt/</url>
    </repository>
</distributionManagement>

<build>
    <plugins>
        <!--发布代码Jar插件-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.7</version>
        </plugin>
        <!--发布源码插件-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.2.1</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
8、打开终端,输入
mvn deploy
9、另一个项目引用打包发布到nexus上的项目坐标
<dependencies>
    <dependency>
        <groupId>test</groupId>
        <artifactId>test</artifactId>
        <version>1.0-RELEASE</version>
    </dependency>
</dependencies>

<repositories>
    <repository>
        <!--此名称要和settings.xml中设置的ID一致-->
        <id>mayikt</id>
        <url>http://192.168.1.155:8081/repository/mayikt/</url>
    </repository>
</repositories>

注意问题

发布的包名一定是RELEASE结尾

否则发布报如下错误:
在这里插入图片描述

搭建gitlab

1、需要先关闭防火墙 
systemctl stop firewalld.service
2、安装和配置必要的依赖关系 
sudo yum install curl openssh-server openssh-clients postfix cronie
sudo service postfix start
sudo chkconfig postfix on
Yum install lokkit
sudo lokkit -s http -s ssh
下载gitlab
docker pull gitlab/gitlab-ce
(3)从gitlab镜像启动容器
docker run -d -p 10443:443 -p 8090:80 --name gitlab --restart always -v /srv/gitlab/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
说明:
-d/ --detach 后台启动
-h/--hostname  hostname
-p/--public  容器的端口映射
--name 容器的名字
 --restart always  当容器退出或宿主机重启的时候,容器接着会始终重启
-v/--volume   给容器添加一个数据卷
 5556外部端口,80内部端口
(4)修改gitlab容器的配置文件
 vi /srv/gitlab/config/gitlab.rb

在这里插入图片描述

修改vi /srv/gitlab/data/gitlab-rails/etc/gitlab.yml

在这里插入图片描述

权限问题
docker exec -it gitlab update-permissions
docker restart gitlab

docker inspect 容器id

curl 172.17.0.2

(5)访问gitab  192.168.1.155:8090
(6)
502正常,等待一段时间即可,docker还在启动中(配置好的电脑启动快)

部分命令

systemctl restart docker  //重启docker服务后再启动容器
docker restart gitlab
docker images //查看镜像是否安装
docker stop容器id  //
docker ps/images  -a //查看docker含有的容器信息
docker rm 容器id  //删除容器
systemctl restart docker
docker inspect 容器id  //查看docker给容器分配的ip地址(确定容器是否启动成功,有ip表示成功)
systemctl start [服务文件名]
systemctl restart [服务文件名]
systemctl stop [服务文件名]
systemctl status [服务文件名]
设置开机启动
systemctl enable [服务文件名]
systemctl disable [服务文件名]
1、firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld 
开机禁用  : systemctl disable firewalld
开机启用  : systemctl enable firewalld
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幽·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值