前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。
1. 找镜像:
docker search nexus
2. 拉取镜像:(我已经拉取过,不选择版本时,默认用最新的版本)
docker pull docker.io/sonatype/nexus3
3. 查看镜像:
docker images
4.启动容器:
docker run -tid -p 8081:8081 --privileged=true --name nexus3 -v $PWD/nexus-data:/var/nexus-data --restart=always docker.io/sonatype/nexus3
说明:
-tid :创建守护式容器 。-p 8081:8081 :宿主机端口(对外访问端口):容器映射端口。这2个端口可不一样。浏览器访问URL用前面个端口 。--privileged=true :容器访问宿主机的多级目录时可能会权限不足,故给 root 权限 。--name nexus3 :给容器取名,可任意设定。-v $PWD/nexus-data:/var/nexus-data :把容器中的 nexus-data 目录挂载到宿主机当前路径下的 nexus-data 下。方便以后查看相关数据。$PWD :取当前路径。此处可以写死为某个完整的确定的目录。 挂载格式为: -v 宿主机目录 :容器目录 。 --restart=always :服务挂后,自动重启 。docker.io/sonatype/nexus3 :镜像名 。
查看容器:
docker ps -a
说明
-a : 查看所有容器,包括非运行中状态的容器。
SATUS 一栏提示了启动后运行时长,证明容器运行成功。
也可从日志中查看容器:
docker logs -f nexus3
说明
-f :实时更新日志。
nexus3 : 容器名。
启动成功的日志:
5. 浏览器访问:
访问格式为 IP:端口(我的服务器 ip 已经绑定域名,可以直接用域名访问。)
首页加载不算快:
6. 右上角可以登陆。
至此 安装、运行已经 OK 了。
7. jar 包上传到私服。
配置maven 的 setting.xml 文件:
配置 项目中 pom.xml 文件:
执行命令:mvn clean deploy -Dmaven.test.skip=true 推送 jar 到私服:
PS:关于 mvn package、mvn install 、mvn deploy 的区别请见文章:简述 maven 命令 package、install、deploy 的区别
推送成功后就可以在私服中查看对应 jar 了:
PS:
遇到问题1:
在启动容器时我原本想换个端口,但发现不用 8081 时,tcp 的端口映射也是自动设置为 8081 的。并且换了端口后,虽然能启动容器成功,显示为运行状态,但是浏览器始终访问不到服务,报错:拒绝连接。最后还是使用了 8081 端口。
遇到问题2:
登陆时始终报错,账号或密码不对,默认密码并不是 admin123。
对此解决方法见文章: ( Docker 方式运行 Nexus3 登陆密码不为 admin123 、重置登陆密码)
遇到问题3:
容器内部的时间比服务器时间晚 8 小时。
解决方法:启动容器时 加入参数: -v /etc/localtime:/etc/localtime:ro 。ro:只读。
完整启动命令为:
docker run -tid -p 8081:8081 --privileged=true --name nexus3 -v $PWD/nexus-data:/var/nexus-data -v /etc/localtime:/etc/localtime:ro --restart=always docker.io/sonatype/nexus3
遇到问题4:
执行 mvn deploy 命令报错:
解决方法见文章:解决: Failed to execute ... maven-deploy-plugin... Return code is: 401, ReasonPhrase: Unauthorized.