一、下载镜像

docker pull sonatype/nexus3

二、启动镜像

创建数据卷目录

mkdir data
chmod 777 data

docker-compose.yaml

version: '3'
services:
  nexus:
    restart: always
    image: sonatype/nexus3:latest
    container_name: nexus
    privileged: true
    ports:
      - '8081:8081'
      - '8082:8082'
      - '8083:8083'
      - '8084:8084'
      - '8085:8085'
    volumes:
      - ./data/:/nexus-data

启动

docker-compose up -d && docker logs -f nexus

三、访问服务

http://192.168.17.101:8081/

image-20201227003159908

查看密码

cat data/admin.password

image-20201227003424494

登录

image-20201227003452446

修改密码

image-20201227003518956

是否开启匿名访问

启用匿名访问将默认允许未经授权的下载,浏览和搜索存储库内容。可以通过编辑分配给匿名用户的角色来更改未经身份验证的用户的权限。

image-20201227003716567

四、私服配置

maven配置文件settings.xml中 的servers 节点下配置 Nexus 私库的账号密码。

<server>
  <id>maven-releases</id>
  <username>admin</username>
  <password>123456</password>
</server>

<server>
  <id>maven-snapshots</id>
  <username>admin</username>
  <password>123456</password>
</server>

五、上传依赖

创建仓库

img

选择maven2

img

点击创建

img

img

选择上传的仓库

img

点击上传

img

命令上传

# Window上传命令
mvn deploy:deploy-file -DgroupId=net.sf -DartifactId=json-lib -Dversion=2.4 -Dpackaging=jar -Dfile=E:/Download/json-lib-2.4.jar -Durl=http://192.168.17.101:8081/repository/maven-releases/ -DrepositoryId=maven-releases
# Linux上传命令
mvn deploy:deploy-file -DgroupId=net.sf -DartifactId=json-lib -Dversion=2.4 -Dpackaging=jar -Dfile=/home/qiang/software/maven/json-lib-2.4.jar -Durl=http://192.168.17.101:8081/repository/maven-releases/ -DrepositoryId=maven-releases
# 参数说明
-DgroupId:就相当于pom中的groupId
-DartifactId:就相当于pom中的artifactId
-Dversion:就相当于pom中的版本号version
-Dpackaging:就相当于pom中打包方式
-Dfile:本地依赖文件位置
-Durl:上传的url地址
-DrepositoryId:对应的是setting.xm里边的id

image-20201227033213242

六、上传镜像

创建仓库

image-20201227032610367

仓库参数

image-20201227032626402

配置仓库地址

# 编辑配置文件
vim /etc/docker/daemon.json
---------------------------------------------------
{
    "insecure-registries": ["192.168.17.101:8082" ]
}
---------------------------------------------------
# 重启docker服务
systemctl daemon-reload
systemctl restart docker
# 登录仓库
docker login -u admin -p 123456 192.168.17.101:8082
# 上传镜像
docker tag nginx:latest 192.168.17.101:8082/nginx:0.1
docker push 192.168.17.101:8082/nginx:0.1
# 拉取镜像
docker pull 192.168.17.101:8082/nginx:0.1
# 搜索镜像
docker search 192.168.17.101:8082/nginx

七、常见问题

7.1 连接超时

问题

org.apache.http.conn.ConnectTimeoutException: Connect to sonatype-download.global.ssl.fastly.net:443 [sonatype-download.global.ssl.fastly.net/31.13.73.17] failed: connect timed out

解决

image-20201227033006884

重启Nexus