前言
此笔记假设前提:
- 已成功安装docker环境(我的是window10,装的Docker For Windows)
- 已配置国内镜像加速,若未配置,可参考
阿里云镜像加速配置- 如果你是想直接下载一个nexus的镜像来完成nexus的安装,下面的内容可能不适合
我作为一个刚入门docker的菜鸟,先从一个docker使用场景的实例来学习。
这里,我以使用docker在centos:7安装nexus为例来说明
开始
目标
使用docker安装获取一个centos镜像,并安装nexus-3
1. 搜索镜像仓库是否有此镜像(search)
主要使用docker的search命令来完成
这里你可能需要查看docker serach 官方说明来了解search的详细使用
# 我这里以搜索官方的centos镜像为例
docker search centos -f "is-official=true"
# -f,--filter:过滤条件
2.下载镜像(pull image)
# 1.下载镜像
# 此处以版本为7的centos镜像为例
docker pull centos:7
# 冒号表示指定版本,不加则获取latest(最新的版本)
# 2. 验证
# 查看本地镜像
docker images
# 注意看“IMAGE ID”列,一会启动时要用
3. 启动容器(run container)
docker run -dit --name=nexus-server -p 8090:8081 -v "G:/docker_share":/mnt/local 5e35e350aded /bin/bash
# ## 上述命令解释 ##
# --name [name] : 给容器起一个简单好记且易识别的名字,一来方便识别,二来操作容器时不用记住容器ID
# -d, --detach :在后台开启进程
# -i, --interactive : 保持进程打开
# -t, --tty : 提供交互命令支持
# -p [我的端口号]:[虚拟机端口号],此参数可重复,用于指定多个端口映射
# -v 映射宿主机共享,前面是宿主机要共享的路径,后面是docker容器内对应的路径
# 5e35e350aded:镜像ID,也可用镜像名称。如果本地没有,会到镜像仓库下载
# /bin/bash,我还不知道干嘛
# 执行成功后,会返回生成的容器ID。如果有其它提示,可能是指令中有问题
# 验证是否启动
docker ps
# 或者
docker container ps
这里主要看“CONTAINER ID”和“NAMES”列,分别叫做容器编号和容器名称
4. 进入容器
这里使用exec方式,以下示例3中方法或小技巧
# 1.使用容器ID方式
docker exec -it 5e35e350aded /bin/bash
# 2.使用容器ID方式(偷懒)
# 只是用ID的前缀,需要注意是否有多个容器ID前缀相同的情况
docker exec -it 5e /bin/bash
# 3.使用容器名称
docker exec -it nexus-server /bin/bash
# 参数解释:同run
进入容器后示例如下,和真实的centos几乎一样,只是没有预装那么多软件工具
5.下载nexus 3
下载 nexus最新版下载 https://www.sonatype.com/download-oss-sonatype
可能是墙的原因,nexus的下载链接打不开了,我这里是从网上找的一个:
阿里云安装nexus失败经历附nexus3.18.1安装包
- Windows版:https://pan.baidu.com/s/1HQD8n7h1wTB-cxLZr_Q_zg
提取码:ct25- Linux版:https://pan.baidu.com/s/1Wz_BoNbQHgGRYDFUyfxgVA
提取码:up8t
6. 安装nexus 3
- 因为nexus 3依赖jdk 8,此处我直接使用yum安装(yum install java-1.8.0-openjdk),不在此骜述
- 将下载文件移到run命令中设置共享的宿主机目录:“G:/docker_share”
- 此时在容器的目录就可看到:
- 解压文件可得到一个程序目录和nexus的工作初始目录
tar -zxvf nexus-3.18.1-01-unix.tar.gz
5. 将解压出来的文件移到/usr/local/目录(可根据自己习惯放,但不建议放在共享的目录)
6. 因为nexus是免编译安装的,所以到此为止安装的准备工作就完成了
7. 重点来了,启动nexus
进入“nexus-3.18.1-01/bin/”目录,执行启动脚本
./nexus start
# 查看运行状态
./nexus status
# 如果不想每次执行nexus命令到到nexus的目录里,可在/usr/bin创建一个快捷方式
ln -s /usr/local/nexus-3.18.1-01/bin/nexus /usr/bin/nexus
-
最后(查看默认密码)
在sonatype-work/nexus3/目录如果看到admin.password文件可使用cat命令查看默认密码 在首次登陆nexus界面时会提示修改,修改后此文件自动删除
如果没有此文件,可使用admin123试试
7. 登陆nexus 3可视化界面并管理你的nexus吧
在浏览器打开http://localhost:8092/,如果显示404或无反应
有可能是系统反应比较慢,可稍等一会 (最长不超过1分钟吧) 再试
8. 容器重新启动
# 假如我将容器停止
docker stop nexus-server
# 此时使用ps命令将看不到,可加上参数-all查看所有历史容器
docker ps -all
# 看到刚才停止的容器后,可根据容器ID或名称启动
docker start nexus-server
# 由于使用的docker的centos镜像,所以初始设计时不允许容器内有后台运行的一些线程的,
# 也就是说不能把nexus加入服务,并设为自启,
# 需要自己再次使用nexus的启动命令
nexus start
引用文档
Docker 搜索镜像
docker安装centos7镜像
启动docker的container(或者说image的实例)
Docker命令详解(run篇)
后记
- 图示中路径有不同,可以忽略,只要你配置好了命令,以上命令基本上无所谓在哪个目录下执行 (仅限进入容器之前的内容)