docker构建maven私服nexus与gitlab

    xiaoxiao2023-10-28  152

    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
    最新回复(0)