1. 使用docker-compose部署nexus
-
docker-compose-nexus.yml
version: "3" services: nexus: container_name: my-nexus image: sonatype/nexus3:3.67.1 hostname: my-nexus network_mode: host ports: - 8081:8081 deploy: resources: limits: cpus: '4' memory: 8192M reservations: cpus: '4' memory: 4096M healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8081"] interval: 30s timeout: 10s retries: 3 volumes: - "/data/nexus:/nexus-data" - "/etc/localtime:/etc/localtime" restart: always
-
部署
docker-compose -f docker-compose-nexus.yml up -d
-
根据自己服务器IP地址,配置hosts
vim /etc/hosts 192.168.xxx.xxx my-nexus
-
防火墙开放8081端口
firewall-cmd --zone=public --add-port=8081/tcp --permanent firewall-cmd --reload
-
web访问
http://192.168.xxx.xxx:8081
用户名:admin
容器创建会生成默认密码,在容器内的/nexus-data/admin.password中。由于做了数据卷映射。所以在宿主机/data/nexus中也能看到admin.password
使用默认密码登录成功后,根据提示修改密码
2. 配置https访问
-
docker-compose-nginx.yml
version: "3" services: nginx: restart: always image: nginx:1.26.2 container_name: my-nginx hostname: my-nginx network_mode: host privileged: true volumes: - "/config/nginx/nginx.conf:/etc/nginx/nginx.conf" - "/config/nginx/conf.d:/etc/nginx/conf.d" - "/logs/nginx:/var/log/nginx" - "/data/nginx:/data/nginx"
-
ssl证书及配置文件
-
自己生成ssl证书,放到指定目录
-
配置文件
server { listen 18081 ssl; server_name localhost; ssl_certificate /etc/nginx/conf.d/certs/server.crt; ssl_certificate_key /etc/nginx/conf.d/certs/server.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; ssl_prefer_server_ciphers on; server_tokens off; add_header Strict-Transport-Security "max-age=3600; includeSubDomains"; client_max_body_size 2000m; root html; charset 'utf-8'; location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto https; # 转发时使用https协议 server_name_in_redirect on; proxy_pass http://my-nexus:8081; } }
-
-
部署
docker-compose -f docker-compose-nginx.yml up -d
-
根据服务器IP,配置hosts
vim /etc/hosts 192.168.xxx.xxx my-nginx
-
防火墙开放18081端口
firewall-cmd --zone=public --add-port=18081/tcp --permanent firewall-cmd --reload
-
web访问
https://192.168.xxx.xxx:18081