二、docker-安装nexus
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二、docker-安装nexus相关的知识,希望对你有一定的参考价值。
参考技术A nexus个人遇到一般都是作为Maven私库使用的,但是好像nexus的作用不止于此,还可以作为Docker镜像库、npm库等使用,功能后续在做研究,本文只针对安装nexus服务。系统:Centos 7.6,2核4G,理论上后续的系统版本都可以使
已验证1核2G的有的机子会出现无法启动的情况。该服务好像比较吃资源,建议使用4核以上的服务器。
环境:docker
使用镜像: sonatype/nexus3
1.拉取镜像
docker pull sonatype/nexus3
2.建立本地挂载文件夹,若无需将容器相关内容挂载到本地,可直接跳转到第4步
mkdir /mnt/data/nexus/data -p
3.挂载文件夹授权
本步骤必不可少,不然容器将会无法启动!!!!!
chown -R 200 /mnt/data/nexus/data
4.创建容器并启动服务。
a.未挂载本地文件夹
docker run -d -p 8001:8081 --name nexus --restart=always sonatype/nexus3
b.挂载本地文件夹
docker run -d -p 8001:8081 --name nexus -v /mnt/data/nexus/data:/nexus-data --restart=always sonatype/nexus3
参数说明:
-d:容器后台运行。
-p:将主机的8001端口映射到docker容器的8081端口。
-v:将主机上的 /mnt/server/nexus/data 目录映射到 /nexus-data 目录
其他的参数可详见菜鸟教程
https://www.runoob.com/docker/docker-run-command.html
5.查看密码。
a.未挂载容器中的 /nexus-data 到本地文件夹
查看容器ID
docker ps
进入容器终端
docker exec -it 容器ID /bin/bash
查看admin密码
cat /nexus-data/admin.password
b.按上述文档挂载了文件夹
无需理会a中的内容,直接访问主机中的目录文件
cat /mnt/data/nexus/data/admin.password
得到的字符串就是nexus的admin账号密码,一般第一次进入是要要求更改密码的。
6.nginx进行域名映射或中转
若docker服务端口直接对外使用,不需要进行nginx等中间服务器处理,该步骤无需理会。
建议使用该步骤,强烈建议使用https!
a.http
server
listen 80;
server_name XXXX.com; // 该处改为域名
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
location /
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001; // 此处未映射到nexus地址
b.https(建议使用)
server
listen 443 ssl;
server_name XXXX.com; // 该处改为域名
ssl_certificate cert/XXXX.com/XXXX.com.pem; // 证书相关文件
ssl_certificate_key cert/XXXX.com/XXXX.com.key; // 证书相关文件
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /
proxy_set_header REMOTE_ADDR $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto https;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://127.0.0.1:8001; // 此处未映射到nexus地址
以上是关于二、docker-安装nexus的主要内容,如果未能解决你的问题,请参考以下文章