Docker隨手記3 - 基於Docker搭建Ubuntu下私服Nexus3

 1、概述

Nexus3能夠支持Maven、Docker、NuGet、npm、Bower等,做爲一個穩定的私服產品經常用於咱們開發管理過程當中。java

用Nexus搭建本地私服有以下好處:docker

  1. 加速構建、穩定
  2. 節省帶寬
  3. 統一控制,方便監管
  4. 能夠部署自定義構件

這些優勢使得Nexus日益成爲主流的倉庫管理器之一npm

閒話少敘,上圖json


2、Nexus鏡像安裝

Nexus2 仍是 Nexus3

Nexus3.x 相較 2.x 版本有很大的改變centos

  1. 從底層重構,從而提升性能,加強擴展能力,並改善用戶體驗
  2. 升級界面,增長更多的瀏覽,搜索和管理功能
  3. 增長 Docker,NuGet,npm,Bower的支持
  4. 提供新的管理接口,從而能自動管理任務

nexus3安裝

1.下載Nexus3的鏡像瀏覽器

訪問hub.docker.com/,搜索nexus以下圖bash


選擇第一個,官方原裝進口版本,執行以下命令,我這裏已經下載好了服務器

root@surging:~# docker pull sonatype/nexus3
Using default tag: latest
latest: Pulling from sonatype/nexus3
Digest: sha256:3262783b5f44c6265cf867b390e84a643b855873b2018c0d28037d7cd29a89cf
Status: Image is up to date for sonatype/nexus3:latest
docker.io/sonatype/nexus3:latest
複製代碼

2.使用鏡像啓動一個容器less

$ docker run -d -p 8081:8081 -p 8082:8082 -p 8083:8083 --name nexus3 -v /home/nexus/nexus-data:/nexus-data --restart=always sonatype/nexus3複製代碼

  • 8082端口是用於host鏡像倉庫的服務端口
  • 8083端口用戶group鏡像倉庫的服務端口
  • 8081 端口是nexus的服務端口
  • --name nexus3
  • -v /home/nexus/nexus-data:/nexus-data 將容器內nexus-data數據文件夾掛載到宿主機/home/nexus/nexus-data目錄下
  • sonatype/nexus3 鏡像名,若是後面不加版本號,則默認啓動latest版本

注意 --restart=always:
加上這個指令無論退出狀態碼是什麼始終重啓容器。當指定always時,docker daemon將無限次數地重啓容器。容器也會在daemon啓動時嘗試重啓,無論容器當時的狀態如何。elasticsearch

  • no :容器退出時不要自動重啓。這個是默認值。
  • on-failure[:max-retries] : 只在容器以非0狀態碼退出時重啓。可選的,能夠退出docker daemon嘗試重啓容器的次數。
  • always :無論退出狀態碼是什麼始終重啓容器。當指定always時,docker daemon將無限次數地重啓容器。容器也會在daemon啓動時嘗試重啓,無論容器當時的狀態如何。
  • unless-stopped :無論退出狀態碼是什麼始終重啓容器,不過當daemon啓動時,若是容器以前已經爲中止狀態,不要嘗試啓動它。

啓動以後咱們就能夠經過http://服務器IP:8081訪問,相關界面以下圖



nexus3默認的帳號依舊是admin可是密碼已經變了具體的密碼存儲在nexus3的容器的nexus-data路徑內的admin.password文件內
具體操做:

a. 查看nexus3容器id,執行 docker ps

控制檯顯示

docker ps
CONTAINER ID        IMAGE                                       COMMAND                  CREATED             STATUS              PORTS                                                                                        NAMES
2bc9db68ba83        elasticsearch:5.6.16                        "/docker-entrypoint.…"   2 weeks ago         Up 2 weeks          0.0.0.0:19200->9200/tcp, 0.0.0.0:19300->9300/tcp                                             es5
01b398d530aa        sonatype/nexus3                             "sh -c ${SONATYPE_DI…"   2 weeks ago         Up 2 weeks          0.0.0.0:8081-8083->8081-8083/tcp                                                             nexus3
e3a1b31ed4f4        registry:2                                  "/entrypoint.sh /etc…"   5 months ago        Up 2 weeks          0.0.0.0:5000->5000/tcp                                                                       registryb複製代碼

b. 進入容器控制檯執行  docker exec -it 01b398d530aa bash

控制檯顯示

docker exec -it 01b398d530aa bash
bash-4.4$ ls
bin  boot  dev	etc  help.1  home  lib	lib64  licenses  lost+found  media  mnt  nexus-data  opt  proc	root  run  sbin  srv  sys  tmp	uid_entrypoint.sh  uid_template.sh  usr  var
bash-4.4$ cd nexus-data/
bash-4.4$ ls
admin.password  db             generated-bundles  karaf.pid  log     restore-from-backup
blobs           elasticsearch  instances          keystores  orient  tmp
cache           etc            javaprefs          lock       portad複製代碼

admin.password中的第一行就是密碼,複製密碼使用admin登陸,登陸成功以後系統會自動提示你更換admin密碼

3、Nexus建立Docker私有倉庫

經過瀏覽器訪問Nexus

http://服務器IP:8081

登陸nexus

點擊右上角進行登陸,密碼就是你剛纔設置的密碼:


登陸

Create repository

點擊設置界面,選擇Repositories,點擊Create repository,以下圖所示:


選擇倉庫類型

這裏Docker有三種類型,分別是group、hosted、proxy。選擇docker(hosted),以下圖:


三種倉庫類型

注:Docker鏡像倉庫類型含義解釋以下:

  • hosted : 本地存儲,即同docker官方倉庫同樣提供本地私服功能
  • proxy : 提供代理其餘倉庫的類型,如docker中央倉庫
  • group : 組類型,實質做用是組合多個倉庫爲一個地址
建立host倉庫

指定docker倉庫的名稱、指定一個端口用來經過http的方式進行訪問倉庫、勾選是否支持docker API V1,而後create repository;



host倉庫建立成功
驗證倉庫

我本地已經登陸過倉庫了,直接顯示成功,賬號密碼可使用admin,也能夠在nexus中自行配置,這裏就不贅述了

docker login 10.10.1.10:8082
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded複製代碼

上一篇:Docker隨手記2 - 配置阿里鏡像加速器,基於Ubuntu18.04LTS

相關文章
相關標籤/搜索