安裝docker,並在docker下用nexus3搭建maven私服

1、前言

前幾天阿里雲服務器(低配)86塊一年,因而趕忙入手了,主要是拿來練練手,今天就是在這個這臺服務器上練了下手搭了一個docker和nexus,當本身的私服用,想着平時能夠把一些本身寫的一些經常使用的工具、配置類搞上去。如今梳理一下搭建的流程把。docker

2、安裝docker

(一) 安裝依賴

yum install -y yum-utils
yum install -y device-mapper-persistent-data
yum install -y lvm2

(二) 安裝 Docker

運行如下命令:json

yum install docker

Docker 官方爲了簡化安裝流程,提供了一套便捷的安裝腳本,CentOS 系統上可使用這套腳本安裝:bash

curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh

而後執行docker version查看是否安裝完成,如圖:服務器

而後啓動 Docker:app

systemctl enable docker
systemctl start docker

(三)配置鏡像加速

另外,咱們知道,相似maven,若是咱們在國內每次都從官方倉庫裏面去下鏡像是很慢的,因此通常也須要配置鏡像加速。curl

vi /etc/docker/daemon.json

打開配置爲:maven

# 填寫本身的加速器地址
{
    "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}

注意了,我是使用的阿里雲鏡像加速,實際上還有其餘站點,阿里雲加速地址須要去阿里雲登陸後獲取,獲取地址爲阿里雲鏡像加速地址獲取,如圖: ide

把這個地址複製到daemon.json就好了。而後重啓daemon和docker服務:工具

systemctl daemon-reload
systemctl restart docker

(四)docker經常使用命令總結

概念性的知識我就不介紹了,我也正在學習,這裏總結一下經常使用命令:學習

  • docker search 關鍵詞:搜索鏡像
  • docker pull xxx:下載鏡像
  • docker images:查看本地有哪些鏡像
  • docker rm container_name/container_id:刪除鏡像
  • docker run -t -i container_name/container_id /bin/bash:運行容器中的鏡像,而且調用鏡像裏面的 bash
  • docker ps -a:查看有哪些容器在運行
  • docker start container_name/container_id:運行容器
  • docker stop container_name/container_id:中止容器
  • docker restart container_name/container_id:重啓容器
  • docker attach container_name/container_id:進入容器
  • exit:退出容器
  • docker rm container_name/container_id:刪除容器

3、docker下安裝nexus3

(一)查找nexus3鏡像

docker search nexus3

我是下的這個:

(二)拉取鏡像

docker pull docker.io/sonatype/nexus3

看拉下來沒有能夠執行:

docker images

(三)執行鏡像

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是鏡像名。

若是須要查看日誌執行:

docker logs nexus3

(四)進入nexus

訪問你的服務器地址+端口8081進入nexus管理後臺。

這裏可能會遇到兩個問題:

第一個問題是阿里雲服務器端口必需要配置一下外網才能夠訪問。

第二個問題是密碼錯誤的問題。

默認nexus的帳號和密碼是admin/admin123,可是不知道爲何多是版本緣由我這裏下的nexus須要默認密碼要進入容器內去找,怎麼查看勒,執行:

docker exec -it 容器id或者容器名 /bin/bash

容器id或容器名經過docker ps -a查看。

而後cd到nexus-data目錄,cat admin.password,查看密碼:

將密碼複製出來,進行登陸就能夠了。

(五)建立倉庫

而後登陸nexus,根據須要建立本身的倉庫或者就用默認的倉庫也行,我是建立了一個新的倉庫,若是須要建立依次點擊如圖:

選擇maven2(hosted)

不一樣的類型區別是:

  • hosted:本地存儲。像官方倉庫同樣提供本地私庫功能
  • proxy:提供代理其它倉庫的類型
  • group:組類型,可以組合多個倉庫爲一個地址提供服務

而後建立倉庫,用默認設置就行:

(六)將倉庫地址copy出來

接下來把剛剛的倉庫地址copy出來就好了。

4、設置maven的setting.xml以及pom文件並上傳jar包

(一)配置setting.xml

注意了,這裏的id必須與設定下載jar主倉庫的<repositories>標籤和設定發佈倉庫的<distributionManagement>標籤內的id保持一致。

設置下載Jar倉庫能夠在Pom裏面寫也能夠在setting.xml裏面寫,在setting.xml寫表示全局,我是在setting.xml裏面寫的:

<profiles>標籤下添加:

<profile>
		<id>my-nexus</id>
		<repositories>
			<repository>
			<id>my-nexus</id>
			<name>my-nexus</name>
			<url>剛剛複製的倉庫地址</url>
			</repository>
		</repositories>
</profile>

<activeProfiles>標籤下添加:

<activeProfile>my-nexus</activeProfile>

而後若是須要上傳到私服,配置pom:

<distributionManagement>
   <repository>
      <id>my-nexus</id>
      <url>你的倉庫地址</url>
   </repository>
</distributionManagement>

以上保證repository標籤下的Id和server下的id同樣就行。

配置好了就可使用maven打包了,我是用的idea自帶的maven插件直接deploey就好了:

相關文章
相關標籤/搜索