文章目录

  • docker安装
  • nexus安装
  • Nexus配置
  • 遇到的问题
  • 容器时区不对
  • Outreach地址无法访问


docker安装

更新包管理器

yum update

安装必要依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

设置稳定的仓库

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装docker时,出现了一下报错信息(在阿里云服务器上):

Error: Failed to download metadata for repo ‘docker-ce-stable’: Cannot
download repomd.xml: Cannot download repodata/repomd.xml: All mirrors
were triedError: Failed to download metadata for repo
‘docker-ce-stable’: Cannot download repomd.xml: Cannot download
repodata/repomd.xml: All mirrors were tried

解决方案:
进入/etc/yum.repos.d目录修改docker-ce.repo($releasever->7)

name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

列出docker可用版本

yum list docker-ce --showduplicates | sort -r

安装

yum install docker-ce

查看docker

docker version

启动docker

systemctl start docker

设置开机启动

systemctl enable docker

配置阿里云镜像加速

echo -e '{\n\t"registry-mirrors": ["https://cr.console.aliyun.com/"]\n}' >  /etc/docker/daemon.json

重启应用镜像加速

sudo systemctl daemon-reload
sudo systemctl restart docker

nexus安装

查找镜像

docker search nexus

拉取镜像

docker pull sonatype/nexus3

查看镜像

docker images

创建nexus数据目录并授权

mkdir -p /home/nexus/nexus-data
chown 200 /home/nexus/nexus-data

创建并启动容器
将服务映射到了宿主机8088,将宿主机/home/nexus/nexus-data目录映射到容器/nexus-data目录

docker run -d -p 8088:8081 --name nexus --restart=always  -v /home/nexus/nexus-data:/nexus-data  sonatype/nexus3

查看容器

docker ps -a

如果容器成功启动就可以进入nexus后台了,访问如下网址(替换ip)

http://ip:8088

登录nexus
从3.17版本开始默认密码不再是admin123,密码是随机生成。首次登录页面会显示admin用户的密码在/nexus-data/admin.password,因为我们在创建容器时做了目录映射,所以进入宿主机查看密码。

cat /home/nexus/nexus-data/admin.password

得到的字符串即为密码,用户名为admin

如果容器启动失败可以查看log

docker logs -f nexus

Nexus配置

这个暂时懒着整理了
关于登录后的一系列操作可参阅几篇博文
https://zhang.ge/5139.html

https://www.jianshu.com/p/77af52a75ad8

遇到的问题

容器时区不对

我在查看日志时发现log里边打印的时间不对,这是因为官方镜像时区和我的时区不同
修改时区
以root用户登录docker容器

docker exec -it -u root <容器id> /bin/bash

如果是CentOS镜像

ln -sf /usr/share/zoneinfo/Asia/Shanghai    /etc/localtime

如果是Ubuntu镜像(我是CentOS所以该方法没验)

echo "Asia/Shanghai" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata

重启log时间正常了

Outreach地址无法访问

登录后台页面之后报了一个错误如下:

*UNKNOWN com.sonatype.nexus.plugins.outreach.internal.outreach.SonatypeOutreach - Could not download page bundle
org.apache.http.conn.ConnectTimeoutException: Connect to sonatype-download.global.ssl.fastly.net:443 [sonatype-download.global.ssl.fastly.net/31.13.64.49] failed: connect timed out

报该错误的原因是nexus的欢迎页面会从Sonatype重定向一些信息进行显示,这个功能叫做Outreach,他的地址是国外的连不上。所以你会发现你的欢迎页面是空荡荡的,什么都没有。为了避免周期性的报错,可以把Outreach禁用。
1.以管理员登录
2.打开Administration -> System -> Capabilities。选择 Outreach Management 功能。
3.点击Disable按钮。修改会立马生效。