centos7配置nexus3(docker)服务器

安装docker环境

  • 环境说明
    CentOS7 min 安装
  • 配置工具参考:
    wget 用于下载相关网络资源
  • 基础环境要求
    网络通畅,可连接到外网

Ps CentOS7 NAT网络设置

  1. 获取机器所在局域网的网关(你的机器访问外网均是通过该网关进行路由的,如果需要外网,勿必保证该网关是可以路由的外网的。我使用的虚拟机,使用VM搭建的NAT,网关设置为192.168.3.2,物理机地址为192.168.3.1,可以访问外网)
  2. 配置机器网络参数(编辑: /etc/sysconfig/network-scripts/ifcfg-ens33)
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=7c71df29-d0a5-4f0c-a6fd-3bbfb23c0f54
DEVICE=ens33
# 从 no 改为 yes
ONBOOT=yes
# 按你自己的需要分配ID,.1 和.2 需要分配给宿主机器和网关,掩码为255.255.255.0, 你可以设置的网络地址范围为 192.168.3.3 ~ 192.168.3.254 (255会用于广播地址,不要随便占用)
IPADDR=192.168.3.5
NETMASK=255.255.255.0
# 该网关一定要设置正确,他是能否加入到外部局域网的关键,用的小伙伴在ping www.baidu.com 异常时,检查一下该网关的配置以及该网关是否能够路由的外网
GATEWAY=192.168.3.2
# 域名服务器地址,我的是武汉电信的域名服务器,你可以按需自己设置,不知道的可以设为 8.8.8.8(google免费域名服务器)
DNS1=202.103.24.68
  • yum 源更新,建议使用网易
# 创建一个临时目录,用来存储网易的repo源
mkdir -p /usr/local/download
cd /usr/local/download
# 保证你已经安装wget工具( sudo yum install -y wget )
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 将旧的repo源备份
mv /etc/yum.repos.d/CentOS7-Base.repo /usr/local/ext/CenterOS7-Base.repo.bak
# 将网易源替换
mv /usr/local/download/CentOS7-Base-163.repo /etc/yum.repos.d/
cd /etc/yum.repos.d
mv CentOS7-Base-163.repo CenterOS7-Base.repo
# 清楚repo,更新yum repo的缓存
yum clean
yum makecache
  • 移除旧的docker安装
sudo yum remove docker  docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
# 安装辅助工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 配置docker yum repo安装源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 下载安装
sudo yum install docker-ce docker-ce-cli containerd.io
  • 启动docker
systemctl start docker
# docker查看本地镜像
docker images

下载nexus3 docker镜像

  • 搜索nexus3镜像
docker search nexus
# 搜索结果如下
NAME                                         DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
sonatype/nexus3                              Sonatype Nexus Repository Manager 3             740                                     
sonatype/nexus                               Sonatype Nexus                                  427                                     [OK]
clearent/nexus                                                                               22                                      
sonatype/nexus-iq-server                     Sonatype Nexus IQ Server                        14                                      
bradbeck/nexus-https                         Dockerized version of Nexus Repo Manager 3 w…   12                                      [OK]
baselibrary/nexus                            ThoughtWorks Docker Image: nexus                7                                       [OK]
cavemandaveman/nexus                         Sonatype Nexus container                        6                                       [OK]
...

其中sonatype/nexus3 就是我们需要的;(nexus3之前的对于npm以及docker仓库管理支持有限,如果只是搭建maven私服,倒是可以用用之前的版本,不过从UI与管理功能上来时nexus3都是一个质的飞跃,建议使用)

  • 下载最新的nexus3镜像

下载镜像之前,建议配置一下docker国内的 registry-mirrors

  • 配置国内docker registry, 重启docker
    这里我把国内常用的几个镜像服务都列出来了,大家可以按需配置,可以配置一个或多个,要注意的是阿里的是需要注册的,然后通过他分配的dockers镜像加速地址来配置
# 编辑 /etc/docker/daemon.json 文件( 没有,则新建一份), 修改启动配置数据
{
    # 中国docker官方镜像
    "registry-mirrors": ["https://registry.docker-cn.com"],
    # 网易163镜像加速
    "registry-mirrors": ["http://hub-mirror.c.163.com"],
    # 中科大镜像加速
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
    # 阿里云镜像加速(需要注册)
    "registry-mirrors": ["https://{your_id}.mirror.aliyuncs.com"],
}
  • 重启docker
systemctl daemon-reload
systemctl restart docker
  • 拉取nexus3镜像
 docker pull sonatype/nexus3
# 下载完成后,查看本地镜像
docker images | grep neuxs3
 # 结果如下
sonatype/nexus3          latest              87d9a097d22c        4 weeks ago         634MB
  • 创建nexus3容器
echo please check images of nexus
docker images | grep nexus3
echo make directory for store data
mkdir -p /usr/local/data/nexus-data
echo grant auth to folder
chmod -R +777 /usr/local/data/nexus-data
echo remove old container
docker stop nexus3
docker rm nexus3
docker run -d --name nexus3 --restart=always -p 8501:8081 -p 8502:8082 -p 8503:8083 -p 8504:8084 -p 8505:8085 -v /usr/local/data/nexus-data:/nexus-data sonatype/nexus3
echo finish run check it
docker ps -a
docker logs nexus3
echo open port of 8501
firewall-cmd --zone=public --add-port=8501/tcp
  • step1 首先检查镜像是否存在
  • step2 在宿主机器创建data目录持久化nexus 数据
  • step3 关闭并删除旧的同名容器
  • step4 创建并启动容器
    参数说明
  • -d 后台运行
  • --name 为容器指定名称
  • --restart 重启策略 默认no,这里选用always
  • -v 宿主机目录:/nexus-data 记住,该镜像配置的存储目录为/nexus-data, 通过-v 我们将宿主机器的目录挂在到容器,就算容器异常会丢失,也不会导致数据丢失
    -p 自定端口映射, 如 8501:8081 指将容器的8081端口映射到宿主机的8501端口,这样,就可以通过宿主记得IP与端口来访为容器相应服务。这里需要注意的是8081是nexus管理服务的端口
  • step5 开放宿主机的8501端口,对外提供nexus3服务
  • step6 通过docker ps | grep neuxs看看你的容器状态有没有起来,我给虚拟机分配的配置比较渣,启动将近2min,b不要着急。关注 status的状态,restarting的话,可能就出错啦,up才是正确状态
  • step7 错误排查,通过 docker logs nexus3 来查看日志, permission等问题,可能是在使用-v 挂载是,目录权限不足导致的,chmod +777 挂载目录后再试试
centos7配置nexus3(docker)服务器_第1张图片
启动界面

Ps.第一次登录的密码,会初始化到/nexus-data/etc/admin.password当中,注意这个目录就是我们挂在的目录,不用费劲去容器里面找,直接在宿主机器挂载目录,找到后,登录按提示设置自己的密码(不要把密码搞忘了,我也不知道怎么恢复,没出现过该状况^-^ )

centos7配置nexus3(docker)服务器_第2张图片
登录账号
centos7配置nexus3(docker)服务器_第3张图片
管理界面概览

启动配置nexus3镜像

# 用你创建容器时指定的name来启动容器,忘了name的不要慌, docker ps -a 了解下
docker start nexus3
# docker start/stop/restart 来对容器进行启动、停止、重启操作

至此我们的nexus服务已经搭建完毕,接下来介绍一下基于nexux3的maven私服配置与docker仓库配置以及后续的npm私服配置

你可能感兴趣的:(centos7配置nexus3(docker)服务器)