Docker快速部署Nexus3

Nexus作爲一個強大的本地私倉,用Maven的人都知道,在這裏就不做詳細的介紹了,有興趣的可以去了解下。
最近換了新的工作環境,基本上什麼基建都沒有(除了技術哈哈),需要獨立在本地環境部署一個Nexus服務,而且nexus也升級到了nexus3版本,所以這個任務就落到我身上了。
原本的Nexus部署方式過於麻煩,我們要的用Nexus提供的服務,並不是要做太大的改動。
因此我想到了用Docker的部署方式,方便,快捷…


此文同時在簡書發佈:https://www.jianshu.com/p/998c9e57fc48
此文同時在CSDN發佈:https://blog.csdn.net/nthack5730/article/details/84347849
轉載要加原文鏈接!謝謝支持!


前置準備

  1. 服務器或主機一臺 - 廢話了
  2. Docker CE - 不知道Docker或者沒裝的朋友可以去Docker官網瞭解下
  3. 確保8081端口沒被佔用,如果佔用了,下面的命令中會告訴大家怎麼修改到其他端口

1. 獲取Nexus3鏡像

首先,先獲取nexus3鏡像,雖然docker在本地找不到對應鏡像的時候會去docker hub找對應的鏡像。但是還是不建議直接run鏡像(可能是代碼潔癖)。

運行下面的命令,從中央倉庫拉取一個nexus3的鏡像:

docker image pull sonatype/nexus3

Nexus3鏡像大小是500M左右,等等吧~~
上面這個是官方的鏡像,如果想用別的也可以docker search nexus看看有沒有想用的,將上面命令中sonatype/nexus3改爲你想要的鏡像

拉取完成之後,通過下面這條命令可以查看所有的鏡像:

docker image ls

2. 運行Nexus3鏡像,建立容器

在docker守護線程(後臺)運行nexus3鏡像,建立一個容器,並映射容器8081端口到宿主機8081端口,同時設置容器名稱爲nexus3

建議新手先別急着運行這條命令,看看下面對這條命令的解釋。

docker run -d -p 8081:8081 --name nexus3 --restart=always sonatype/nexus3

先解釋下這條命令:
-d:表示在docker守護線程運行這個鏡像;
-p:表示綁定端口,前面的端口表示宿主機端口,後面的表示容器端口,如果宿主機的8081端口已經被佔用了,那麼可以改爲8082:8081,爲什麼後面的是8081端口?這是Nexus服務自己設定的,可以修改,但是跑docker的話沒必要了,下面都是以8081爲nexus的端口;
--restart=always:這個指定docker重啓啓動容器,當服務器或者docker進程重啓之後,nexus容器會在docker守護進程啓動後由docker守護進程啓動容器,容器的重啓策略很多,大家可以自己去看看對應的資料;
--name <container-name>:這裏是指定了容器建立後的名稱;
最後面的sonatype/nexus3鏡像名

3. 檢查nexus3運行情況

Nexus官方提供了檢查接口,ping-pong…

curl -u admin:admin123 http://localhost:8081/service/metrics/ping

nexus3初次運行需要幾分鐘,不一定馬上啓動馬上響應

上面的用戶名和密碼根據自己本機的用戶名密碼修改即可
得到pong響應即表示nexus3啓動完成

4. 訪問nexus服務頁面

以服務端口爲8081爲例,訪問:http://{host}:8081/即可進入nexus
其中host爲服務器的地址,如果是本機,則IP改爲localhost

5. 管理Nexus容器

運行之後使用docker container ls查看你的容器,記住容器名,這就是上面爲什麼我們要命名容器名爲:nexus3
停止啓動重啓Nexus,是通過容器來管理的:startstoprestart

docker container start nexus3
docker container stop nexus3
docker container restart nexus3

並不是run鏡像!!!!!並不是run鏡像!!!!!
如果每次都run鏡像的話,那麼每次run都會建立一個新容器、卷,剛學docker的時候踩過的坑。???

附:設置nexus容器自動啓動

很多朋友可能一開始就run了鏡像,沒有設置好docker的容器自動啓動,只要跑下面的命令更新下重啓策略就好:

docker update --restart=always nexus3

語法是:

docker update <policy> <container-name>

相關的策略還有很多,有興趣的朋友可以去docker官網找找。

Nexus到此部署完成,整個過程不包下載時間的話10分鐘都不到。是不是很方便呢?期待大家點個贊喲!謝謝大家支持!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章