docker随手笔记第四节 docker安装mysql5.7
docker随手笔记第五节 docker安装redis4.0
docker随手笔记第七节 jenkins通过git部署java微服务插件安装
docker随手笔记第八节 jenkins通过git自动部署java微服务
docker随手笔记第九节 docker -v参数 目录挂载总结
portainer介绍
portainer.io是容器管理工具,可以管理多个服务器的docker。可以对容器进行启动,删除,重命名,查看日志,管理镜像等。下面是部分功能的截图。k8s成本比较高,当考虑成本问题,可以先portainer.io
具体功能小伙伴自己研究一下,下面介绍怎么安装和使用
portainer.io的安装
docker安装portainer.io安装很简单,如下
-v /var/run/docker.sock:/var/run/docker.sock 表示管理当前服务器的docker
docker run -d -p 9000:9000 \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ --name portainer \ portainer/portainer
访问地址:http://服务器ip:9000
第一次访问的时候,要创建账号密码,如下图
账号密码创建成功后,选择local
点击连接后就进入管理界面了,右边是docker服务器列表
点击local,在点击container,就进入容器的管理,
由于我原本就有docker安装一些容器。所有进来就有docker列表了。上面的那边按钮就是对容器的操作,包括启动,删除,停止,重命名,添加容器。
每个容器还可以查看运行状态,日志,进入容器
portainer.io 添加其他服务器的docker管理
首先要添加的docker容器服务器要开启远程访问,具体操作上节课有讲
接下来是portainer.io配置,如下图
点击左边菜单Endpoints
然后点击添加
配置如下
填写好name,Endpoint URL(远程服务的ip+端口,默认端口2375),Public IP服务器ip,然后点击添加。这就成功了。
portainer + jenkins 版本管理
可以通过jenkins自动部署应用,jenkins每次点击自动构建的时候,会把原有的容器停掉或者删除掉,创建启动新的容器。可以通过portainer查看容器的运行状态和日志,portainer可视化界面挺好用的。
ssh脚本如下,具体章节在docker随手笔记第八节 jenkins通过git自动部署java微服务
d1=$(date "+%Y%m%d%H%M") name="marketing-sys-api" appName=$name$d1 port=28001 mkdir -p /home/$name cd /home/$name cp /usr/local/soft/jenkins/jenkins-data/workspace/marketing-java/marketing-sys-api/target/marketing-sys-api-yskj0.01-releases.jar app.jar cat > Dockerfile << EOF FROM java:8 EXPOSE $port #复制代码包到镜像内 ADD app.jar /app.jar ENV TZ=Asia/Shanghai RUN bash -c 'touch /app.jar' RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone ENTRYPOINT ["java","-jar","-D user.timezone=GMT+08","/app.jar"] EOF docker build -t $name:${ImageVersion} . docker login --username=name --password=pwd url docker tag $name:${ImageVersion} registry.cn-shenzhen.aliyuncs.com/lifetime/$name:${ImageVersion} docker push url/$name:${ImageVersion} docker rm -f $(docker ps | grep $name | awk '{print $1}') docker rmi -f $(docker images | grep $name | awk '{print $3}') docker run --name $appName -d -p $port:$port url/$name:${ImageVersion}