很早就听说了Docker这门技术了,每次心血来潮都是立马安装到自己的电脑上,但是真的都没怎么用,真正的使用是从搭建一个
spring cloud
微服务开始的,由于线上要使用docker+pipline+jenkins
实现,最开始本地只负责实现功能,但是要做部署的时候,发现各种不爽、不方便,况且服务器上还有其他的项目在跑,然后就真正意义上的开始了我的Docker之旅。后面有时间会把使用docker+pipline+jenkins
部署spring cloud过程也分享出来
在本地使用Docker部署好环境,直接搬到线上,再不用担心环境不一致导致的各种问题。
一、Docker
Docker的安装和配置等这里不做太多赘述,推荐几个教程,绝对够用
- 菜鸟教程:https://www.runoob.com/docker/docker-tutorial.html
- Docker从入门到实战:https://vuepress.mirror.docker-practice.com/ 【推荐】
- 老男孩讲解docker和k8s集群【视频】:https://www.ixigua.com/pseries/6800254105622151684
另外,Docker从入门到实战这本书的电子版在github上也是有的,找不到的可以公众号下面回复docker
即可获取【也可直接小程序上直接阅读】
二、部署Portainer
Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能。功能十分全面,基本能满足中小型单位对容器管理的全部需求。
先来看几张图:
使用Docker部署Portainer
Portainer由两个元素组成,即Portainer服务器和Portainer代理。这两个元素都作为轻量级Docker容器在Docker引擎或Swarm集群中运行。由于Docker的性质,存在许多可能的部署方案,但是,我们在下面详细介绍了最常见的方案。请使用与您的配置匹配的方案(或者,如果未列出您的配置,请参见portainer.readthedocs.io
以获取其他选项)。
请注意,使用Swarm时建议的部署模式是使用Portainer代理。
\1. 在独立的LINUX Docker主机 /单节点集群(或以“ Linux容器”模式运行的Windows 10 Docker主机)上部署Portainer Server 。
使用以下Docker命令部署Portainer服务器;请注意,在独立主机上不需要代理,但是如果使用代理,它会提供其他功能(请参阅下面的portainer和代理场景):
1 | $ docker volume create portainer_data |
然后浏览器访问http://localhost:9000/
注意:-v /var/run/docker.sock:/var/run/docker.sock选项只能在Linux环境中使用。
Mac os 系统下类似:
1 | [StevendeMacBook-Pro:run Steven$ docker run -d -p 9000:9000 -p 8000:8000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer |
2.在独立的WINDOWS Docker主机(运行Windows容器)上部署Portainer Server –注意必须是Windows 1803或更高版本。
1 | docker volume create portainer_data |
然后浏览器访问http://localhost:9000/
开始访问时需要注册个管理账号,然后选择local连接即可,也可以连接远程
下面的不是特别常用,至少对与我,可以学习下
3.使用Portainer服务器和Portainer代理管理LINUX Swarm集群
1 | 部署Portainer和Portainer Agent来管理Swarm集群很容易!您可以将Portainer作为服务直接部署在Docker集群中。请注意,此方法将自动部署Portainer Server的单个实例,并将Portainer Agent作为全局服务部署在群集中的每个节点上。 |
然后浏览器访问http://localhost:9000/
4.使用Portainer服务器和Portainer代理管理WINDOWS Swarm群集
1 | 部署Portainer和Portainer Agent来管理Windows 2016(1803)或Windows 2019(10903)Swarm群集非常容易!您可以将Portainer作为服务直接部署在Docker集群中。请注意,此方法将自动部署Portainer Server的单个实例,并将Portainer Agent作为全局服务部署在群集中的每个节点上。 |
然后浏览器访问http://localhost:9000/
需要注意的是:再部署之前,应该在集群的Docker主机上公开所需要的网络端口
5.仅限Portainer代理部署
- 在远程LINUX Swarm群集上将Portainer Agent部署为Swarm服务,在远程群集中的管理节点上运行此命令。
1 | docker service create --name portainer_agent --network portainer_agent_network --publish mode=host,target=9001,published=9001 -e AGENT_CLUSTER_ADDR=tasks.portainer_agent --mode global --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock --mount type=bind,src=//var/lib/docker/volumes,dst=/var/lib/docker/volumes –-mount type=bind,src=/,dst=/host portainer/agent |
- 在独立的Windows Server 2016 Docker主机上部署Portainer代理\
1 | docker run -d -p 9001:9001 --name portainer_agent --restart=always -v \\.\pipe\docker_engine:\\.\pipe\docker_engine portainer/agent |
- 在作为Swarm节点运行的SINGLE Windows Server 2016 Docker主机上部署Portainer代理(有关多节点部署,请参阅高级配置)
1 | docker run -d -p 9001:9001 --name portainer_agent --restart=always -v \\.\pipe\docker_engine:\\.\pipe\docker_engine -e AGENT_CLUSTER_ADDR=tasks.agent portainer/agent |
以上三个选项仅部署代理,您必须从现有的Portainer Server实例连接到代理。
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !