Docker及Nexus3.x安装及使用 最新版

Nexus3.x安装及使用

一、Windows安装Docker

1.安装/升级Docker客户端

必备条件

若要在 Windows 10 上运行容器,需要以下各项:
  • 一台运行 Windows 10 专业版或企业版(含周年更新(版本1607)或更高版本)的物理计算机系统。
  • 应启用hyper-v 。

如果你的是64位Windows 10专业版或者企业版,那么推荐使用Docker for Windows.此时直接从Docker官方网站下载最新的Docker for Windows的安装包即可:https://docs.docker.com/docker-for-windows/install/

该网站需要注册后下载,注册后即可下载.

安装

1.开启 Hyper-V

在Windows10中Hyper-V虚拟机管理功能默认是关闭的,我们可以通过以下方法启用Hyper-V虚拟机管理器。

找到控制面板

Docker及Nexus3.x安装及使用 最新版_第1张图片

选择

Docker及Nexus3.x安装及使用 最新版_第2张图片

Docker及Nexus3.x安装及使用 最新版_第3张图片

“确定”后,会有一个应用配置的过程,最后提示重启系统。重启之后就可以在Win10开始菜单的“Windows管理工具”下看到Hyper-V管理器了。如图:

从任务管理器->性能界面 也可以看到开启了虚拟化

Docker及Nexus3.x安装及使用 最新版_第4张图片

2.安装docker

Docker及Nexus3.x安装及使用 最新版_第5张图片

看了网上的教程,Windows选择第二个我尝试,在后面的命令输入中会提示了Linux命令,所以果断放弃了这个选择,这个在后面安装后也可以选择,下面我们有截图,点击ok安装即可.

  • 安装后切换容器(切换windows和Linux容器)

Docker及Nexus3.x安装及使用 最新版_第6张图片

3.镜像加速

这里我们使用阿里云镜像加速:

https://cr.console.aliyun.com 阿里云镜像容器服务,登录后选择镜像中心–>镜像加速器–>复制加速器地址然后进行以下操作

  • 针对安装了Docker for Windows的用户,您可以参考以下配置步骤:
  • 在系统右下角托盘图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Daemon。编辑窗口内的JSON串,填写下方加速器地址:
    {
    “registry-mirrors”: [“https://xxxxxx.aliyuncs.com”]
    }
  • 编辑完成后点击 Apply 保存按钮,等待Docker重启并应用配置的镜像加速器。
4.注意
  • Docker for Windows 有两种运行模式,一种运行Windows相关容器,一种运行传统的Linux容器。同一时间只能选择一种模式运行。

二、Nexus安装

1.Nexus介绍

Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。除此之外,Nexus还可以管理Docker镜像

  • 通常的做法:本地仓库没有,则去中央仓库下载
  • 搭建私库的做法:本地仓库没有,再去私服下载,私服没有,再去中央仓库下载

2.docker安装Nexus

1.查找nexus镜像,选择sonatype/nexus3 进行安装

docker search nexus3

Docker及Nexus3.x安装及使用 最新版_第7张图片

2、拉取nexus3镜像(阿里云镜像加速会快一些)

docker pull sonatype/nexus3

Docker及Nexus3.x安装及使用 最新版_第8张图片

3、查看镜像

docker images

Docker及Nexus3.x安装及使用 最新版_第9张图片

4.运行 nexus3

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

5、查看所有容器

docker ps -a

6.登陆网址查看

http://localhost:8081/ 默认

Docker及Nexus3.x安装及使用 最新版_第10张图片

7.查询登录密码,修改新密码

现在默认名是admin 默认密码会提示我们去找

Docker及Nexus3.x安装及使用 最新版_第11张图片

操作命令

docker ps -a  
docker exec -it b068380a83ce /bin/bash
cd nexus-data
cat admin.password

Docker及Nexus3.x安装及使用 最新版_第12张图片

exit 退出容器

8.修改密码时会出现一个弹窗

之前的版本默认情况下,Nexus私服的仓库是允许匿名(anonymous)访问的,也就是任何开发者只要知道你的仓库地址,都可以远程依赖你发布到仓库的库。既然是私服,可能有些库不想要给其他人访问,可以通过设置凭据访问来限制用户访问远程依赖库,最简单的一种就是用户名密码凭据访问。

现在的话我们不要去勾选这个,当然即使勾选了也可以修改。

  • 第一步:打开远程仓库,使用有配置管理的账户登录,打开设置页面;
  • 第二步:定位到“Security-Anonymous”,将“Allow anonymous users to access the server”勾选去掉,保存更改。

Docker及Nexus3.x安装及使用 最新版_第13张图片

下面我们会有介绍如何添加用户

三、web界面的使用

1.Browse可以查看当前有多少仓库,搭建好的Nexus,默认会带有一些maven仓库,一般使用这些仓库就足够了

2.默认仓库说明

maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
maven-releases:私库发行版jar,<- 初次安装请将Deployment policy设置为Allow redeploy ->
maven-snapshots:私库快照(调试版本)jar
maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml或项目pom.xml中使用

3.仓库类型

nexus的仓库类型分为以下四种:

    group:这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的,用于方便开发人员自己设定的仓库。maven-public就是一个Group类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x默认Releases,Snapshots,Central,当然你也可以自己设置
    hosted:宿主,本地仓库,通常我们会部署自己的构建到这一类仓库。私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的jar文件
    proxy:代理仓库,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage属性的值即被代理的远程仓库的路径),如可配置阿里云maven仓库
    virtual:虚拟
    Central:中央仓库

4.配置阿里云仓库

Nexus的maven-group的默认查找方式为:maven-releases --> maven-snapshots --> maven-central,我们在中间再加一个阿里云仓库,加快访问速度。

Docker及Nexus3.x安装及使用 最新版_第14张图片

选择proxy类型

Docker及Nexus3.x安装及使用 最新版_第15张图片

信息填写
仓库名字:随便填写
阿里云远程maven仓库地址:http://maven.aliyun.com/nexus/content/groups/public/
其他选项:默认即可

Docker及Nexus3.x安装及使用 最新版_第16张图片

修改maven-public中的仓库引用及顺序:

Docker及Nexus3.x安装及使用 最新版_第17张图片

至此,配置完毕!我们在maven使用maven-public仓库地址的时候,会按照如下顺序访问:本地仓库 --> 私服maven-releases --> 私服maven-snapshots --> 远程阿里云maven仓库 --> 远程中央仓库。
接下来说明maven如何配置使用私服。

四、配置用户

  • 定位到“Security-Roles”,新建一个可以访问仓库的角色

系统自己带的访问角色我们也可以自己添加修改权限,新建一个角色

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t7MjmWCd-1577283375445)(https://cdn.jsdelivr.net/gh/qixizx/cdn/img/blog_file/2019/12/25/访问下载角色.png)]

Docker及Nexus3.x安装及使用 最新版_第18张图片

  • 配置角色,添加可访问的仓库,保存角色信息

Docker及Nexus3.x安装及使用 最新版_第19张图片

  • 定位到“Security-Users”,添加用户

Docker及Nexus3.x安装及使用 最新版_第20张图片

  • 给新建的用户赋予刚才新建的角色,保存用户。

Docker及Nexus3.x安装及使用 最新版_第21张图片

五、Maven配置使用Nexus

maven配置私服有两种方式

  • setting.xml:该文件配置的是全局模式
  • pom.xml:该文件的配置的是项目独享模式
  • 若pom.xml和setting.xml同时配置了,以pom.xml为准

方法一、配置pom设置

Maven配置私服下载依赖

  • setting.xml文件配置

这个时候不需要再配置pom.xml文件,即可使用私服下载jar依赖包

<mirrors>
	 <mirror>
		
        <id>maven-publicid>
		
        <name>maven-publicname>
		
       <mirrorOf>*,!jeecg,!jeecg-snapshotsmirrorOf>
		
        <url>http://172.17.175.177:8081/repository/maven-public/url>
    mirror>
 mirrors>

该url地址区仓库里面找到URL http://172.17.175.177:8081/repository/maven-public/

以下的url都通过该方式查找对应的URL

Docker及Nexus3.x安装及使用 最新版_第22张图片

  • pom.xml文件配置
<repositories>
	<repository>
		<id>maven-nexusid>
		<name>maven-nexusname>
		<url>http://172.17.175.177:8081/repository/maven-public/url>
		<releases>
			<enabled>trueenabled>
		releases>
		<snapshots>
			<enabled>trueenabled>
		snapshots>
	repository>
repositories>

此时我们的web浏览是没有文件的

Docker及Nexus3.x安装及使用 最新版_第23张图片

去工程下载依赖包,发现使用我们自己的私服了

我们去浏览器插看nexus,已经有很多jar包了

Maven配置私服发布依赖

  • 第一步,修改setting.xml文件,指定releases和snapshots server的用户名和密码

<servers>
	<server>
		<id>releasesid> 
		<username>adminusername>
		<password>admin123password>
	server>
	<server>
		<id>snapshotsid> 
		<username>adminusername>
		<password>admin123password>
	server>
servers>

  • 第二步,在项目的pom.xml文件中加入distributionManagement节点

<distributionManagement>
	<repository>
        
		<id>releasesid>
		<name>Releasesname>
        
		<url>http://172.17.175.177:8081/repository/maven-releases/url>
	repository>
	<snapshotRepository>
		<id>snapshotsid>
		<name>Snapshotname>
        
		<url>http://172.17.175.177:8081/repository/maven-snapshots/url>
	snapshotRepository>
distributionManagement>

  • 第三步,执行发布
mvn deploy

方法二、本地的全局配置(下载上传全部配置完毕)

通过修改maven的配置文件settings.xml进行更改,让所有项目都使用nexus仓库。

ip自己修改

1、setting.xml (完整版)


 
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <pluginGroups>
  pluginGroups>
  <proxies>
  proxies>
 
 <servers>
    
    <server>
      <id>maven-publicid>
      <username>adminusername>
      <password>admin123password>
    server>
     <server>
      
      <id>releasesid>
      <username>adminusername>
      <password>admin123password>
    server>
     <server>
      <id>snapshotsid>
      <username>adminusername>
      <password>admin123password>
    server>
  servers>
 
  <mirrors>
   <mirror>
		
        <id>maven-publicid>
		
        <name>maven-publicname>
		
       <mirrorOf>*,!jeecg,!jeecg-snapshotsmirrorOf>
		
        <url>http://172.17.175.177:8081/repository/maven-public/url>
    mirror>
  mirrors>
 
  <profiles>
    <profile>
      
               <id>jdk-1.8id>
               <activation>
                   <activeByDefault>trueactiveByDefault>
                   <jdk>1.8jdk>
               activation>
               <properties>
                   <maven.compiler.source>1.8maven.compiler.source>
                   <maven.compiler.target>1.8maven.compiler.target>
				   <maven.compiler.compilerVersion>1.8maven.compiler.compilerVersion>
               properties>
       profile>
 
    <profile>
      <id>nexus-prid>
       
      <repositories>
        <repository>
          <id>nexusid>
          <name>nexusname>
         
          <url>http://172.17.175.177:8081/repository/maven-public/url>
          
          <releases>
            <enabled>trueenabled>
          releases>
          
          <snapshots>
            <enabled>trueenabled>
          snapshots>
        repository>
      repositories>
       
      <pluginRepositories>
        <pluginRepository>
          <id>nexusid>
          <name>nexusname>
          <url>http://172.17.175.177:8081/repository/maven-public/url>
          <snapshots>
            <enabled>trueenabled>
          snapshots>
          <releases>
             <enabled>trueenabled>
          releases>
        pluginRepository>
      pluginRepositories>
   profile>
  profiles>
 
  <activeProfiles>
      
    <activeProfile>nexus-practiveProfile>
    <activeProfile>jdk-1.8activeProfile>
  activeProfiles>
settings>

2.验证 pom文件添加

<dependencies>
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        
        <version>1.0.0-SNAPSHOTversion>
    dependency>
dependencies>



<distributionManagement>
	<repository>
        
		<id>releasesid>
		<name>Releasesname>
        
		<url>http://172.17.175.177:8081/repository/maven-releases/url>
	repository>
	<snapshotRepository>
		<id>snapshotsid>
		<name>Snapshotname>
        
		<url>http://172.17.175.177:8081/repository/maven-snapshots/url>
	snapshotRepository>
distributionManagement>


注意以下几点:

  • 若项目版本号末尾带有 -SNAPSHOT,则会发布到snapshots快照版本仓库
  • 若项目版本号末尾带有 -RELEASES 或什么都不带,则会发布到releases正式版本仓库

六、上传jar

Docker及Nexus3.x安装及使用 最新版_第24张图片

七、常见的docker命令操作

Docker及Nexus3.x安装及使用 最新版_第25张图片

<-查询镜像->
    docker image ls
<-查询容器->
    docker ps -a
<-删除容器(先停止容器)->
    docker rm CONTAINER(容器序列号)
<-停止容器->
    docker image CONTAINER
<-删除镜像->
    docker image rm CONTAINER(容器名)
<-启动容器->
    docker start CONTAINER

八、版权声明

版权声明:转载请附上原文出处链接及本声明。
作者: 微笑
链接: https://emdwx.com/posts/21cfbf15/
来源: 微笑
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(docker)