docker创建私服

docker准备工作

# 卸载旧版本
yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

# 设置 yum repository
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装并启动 docker
yum install -y docker-ce-18.09.7 docker-ce-cli-18.09.7 containerd.io 
systemctl enable docker
systemctl start docker

**

一、使用docker搭建nexus3私服

**

下载镜像
docker pull sonatype/nexus3

创建文件并授权  --为私服仓库存储做映射用
mkdir -p /app/nexus-data | chmod -R 777 /app/nexus-data


运行容器。占用端口,做数据储存映射
docker run --restart=unless-stopped -d -p 5000-5010:5000-5010 -p 8081:8081 -v /app/nexus-data:/nexus-data --name nexus sonatype/nexus3



1、打开浏览器,访问 http:// host addres:8081/

2、管理员登录密码在 /usr/local/docker/nexus/nexus-data 中admin开头的文件中,将其拷贝输入即可。

3、登录之后会要求修改密码,按要求修改即可。

二、项目发布到nexus的仓库

1、首先修改maven的setting.xml文件,添加用户信息,以便jar包上传私服时进行身份认证,修改内容如下:

<servers>
    <server>
          <id>maven-releases</id>
          <username>admin</username>
          <password>xxxxxx</password>
    </server>
    <server>
      <id>maven-snapshots</id>
      <username>admin</username>
      <password>xxxxx</password>
    </server>
#####################################
</servers>id : 为nexus的仓库名称,
username : nexus用户名
password : nexus密码

------------------------------------------
当然也可以采取docker  命令连接的方式

连接仓库前需要进行配置 vim /etc/docker/daemon.json

    {
    "insecure-registries": ["ip:启动nexus3端口" ]
    }
    
    在执行以下命令(上面ip和端口根据自己来)
    systemctl daemon-reload
    systemctl restart docker

docker login -u admin -p 输入自己的密码  ip地址:端口  
#注意这里的端口是配置仓库时选择的端口号

对镜像做便签然后上传(下面为案例,ip和端口需要自己的)
docker tag nginx:latest 172.16.77.71:8082/nginx:0.1
docker push 172.16.77.71:8082/nginx:0.1

然后就可以pull了
docker pull 172.16.77.71:8082/nginx:0.1

2.讲解对nexus3界面的操作
登录后点击设置界面 选择Repositories,点击Create repository,如图所示
在这里插入图片描述
选择仓库类型 这里选择hosted类型 如图
在这里插入图片描述
配置仓库
该仓库指定一个唯一的名称、HTTP的端口、允许交互的API等
在这里插入图片描述
3.、创建maven项目,修改pom.xml
增加发布管理节点

<distributionManagement>
        <snapshotRepository>
            <id>maven-snapshots</id>
            <name>maven-snapshots-repository</name>
            <url>http://192.168.172.141:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
        <repository>
            <id>maven-releases</id>
            <name>maven-releases-repository</name>
            <url>http://192.168.172.141:8081/repository/maven-releases/</url>
        </repository>
    </distributionManagement>

-------------------------------------------------------
snapshotRepository : 快照仓库
repository : 发行仓库
id : 与上面的server的id一致
name : 随便
url : 仓库地址,从nexus中可以找到

4、项目打包发布
maven会根据中是否含有SANPSHOT来选择是发布到快照仓库,还是发行版仓库

项目打包
mvn clean package -Dmaven.test.skip=true
项目发布
mvn deploy

5有时项目开发时,一些maven依赖下载不下来,一直报错。这时,可以手动下载jar包,将其安装到nexus私服,再从nexus解决依赖问题。下面以安装kaptcha为例

mvn deploy:deploy-file -DgroupId=com.google.code.kaptcha -DartifactId=kaptcha -Dversion=2.3 -Dpackaging=jar -Dfile=D:\kaptcha-2.3.2.jar -Durl=http://192.168.172.141:8081/repository/third/ -DrepositoryId=third

----------------------------------------------------
DgroupId : jar包的groupId
Dversion : jar包的版本
Dfile : jar包所在位置
Durl : 仓库地址
DrepositoryId : 仓库名

这里新建了名为third的第三方仓库,注意要在setting.xml增加一个server节点,
配置用户名和密码。同时要将third仓库加到maven-public组中,
因为第十步要依赖的是maven-public组。
将 third加入maven-pulic组后,只要依赖maven-public,
便可取到third中的jar包。

三、从nexus下载依赖

1.在pom.xml中增加如下仓库配置:

<repositories>
        <repository>
            <id>nexus</id>
            <name>Nexus Repository</name>
            <url>http://192.168.172.141:8081/repository/maven-public/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>nexus</id>
            <name>Nexus Plugin Repository</name>
            <url>http://192.168.172.141:8081/repository/maven-public/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>

--------------------------------------------
可以看到 上面的url节点填写的都是maven-public组的url,
而maven-releases,maven-snapshots,third都包含在maven-public中,
所以能取到三个仓库的内容。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值