二、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的主要内容,如果未能解决你的问题,请参考以下文章

二.docker安装(Centos和Ubuntu)

Docker 从入门到实践系列二 - Docker 安装

Docker 从入门到实践系列二 - Docker 安装

二Docker实用篇_安装Docker

二Docker实用篇_安装Docker

打造专属的docker开发环境(二)-centos安装httpd