公司项目需要,开始玩docker,开始折腾harbor,各种百度各种问题,满满的搞了一整天,终于搞定了maven打包到docker,然后push到harbor,现记录一下自己研究的成果。现在环境为远程私有仓库在阿里云,本地安装docker DeskTop,流利是先打包到本地docekr容器再推送到harbor。
Ubuntu 安装 Docker
1 | apt-get remove docker docker-engine docker.io containerd runc |
1 | apt install docker.io |
阿里云加速器(推荐)
Docker Compose 安装
Compose 支持 Linux、macOS、Windows 10 三大平台。在 Linux 上的也安装十分简单,从 官方 GitHub Release 处直接下载编译好的二进制文件即可。
1 | curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose |
验证
1 | docker-compose version |
安装harbor
1 | # 下载 |
配置
打开文件 harbor.yml
1 | # 修改hostname,也可使用ip:132.232.22.xxx |
注意:修改三个地方:1,hostname为harbor的仓库IP.。2,注释掉https开头的这一堆,因为我打算用账户密码访问。3,修改harbor_admin_password
安装
1 | # 检查 |
使用
登录浏览器(因为我用的是http访问,所以用火狐,如果用谷歌,可能会登录不上),使用上面配置的域名或者ip+port,进入harbor内创建一个项目test
安装Docker DeskTop
打开客户端,修改docker Engine
{
“registry-mirrors”: [],
“insecure-registries”: [“47.91.220.3111”],
“debug”: true,
“experimental”: true
}
其中:insecure-registries为harbor的地址,开启http请求,experimental为true,能从公网下载镜像。
勾选如下
测试登录
在cmd中输入
docker login 47.91.220.3111 输入用户名和密码(harbor的用户名和密码)
maven配置
<server>
<!--maven的pom中可以根据这个id找到这个server节点的配置-->
<id>docker-harbor-registry</id>
<!--远程harbor的用户名-->
<username>admin</username>
<!--远程harbor的密码-->
<password>Harbor12345</password>
</server>
1 | <!--项目名,需要和Harbor中的项目名称保持一致 --> |
1 | <build> |
Dockerfile内容(src/main/docker下)
1 | FROM openjdk:8-jdk-alpine |
部署在其它服务器
docker开启http
如果不开启docker login时默认是https
1 | vim /etc/docker/daemon.json |
记录几个常用:
docker pull 47.91.220.3111/test/app:0.0.1
docker run -p 8989:8989 -name app -d 47.91.220.3111/test/app:0.0.1
docker logs -f -t –since=”2017-05-31” –tail=10 edu_web_1
–since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。
-f : 查看实时日志
-t : 查看日志产生的日期
-tail=10 : 查看最后的10条日志。
edu_web_1 : 容器名称