最近在一直研究基于docker的CI/CD模式,为了方便管理docker容器,安装了portainer,特在此详细记录下安装及使用过程,以备查阅
一.首先从docker中查找portainer镜像
docker search portainer
二.我们选择其中stars数最多的一个,执行pull命令将镜像拉下来
docker pull docker.io/portainer/portainer
现在我们通过命令可以查看到当前所有的镜像
docker images
三.启动portainer
docker run -d -p 19000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/myvolumes/portainer/_data:/data --name prtainer docker.io/portainer/portainer
查看容器的运行状态:
docker ps -a
然后我们通过访问ip+19000即可访问到portainer服务了,初始的默认账号密码为 admin admin ,可以在登录后进行修改
注意,如果出现Premission denied,原因是CentOS7中的安全模块selinux把权限禁掉了,至少有以下三种方式解决挂载的目录没有权限的问题:
1.在运行容器的时候,给容器加特权,及加上 --privileged=true 参数:
docker run -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /data/docker_host/portainer/data:/data --privileged=true --name prtainer portair/portainer
2.临时关闭selinux:
setenforce 0
3.添加selinux规则,改变要挂载的目录的安全性文本
# 更改安全性文本的格式如下
chcon [-R] [-t type] [-u user] [-r role] 文件或者目录
选顷不参数:
-R :连同该目录下癿次目录也同时修改;
-t :后面接安全性本文的类型字段!例如 httpd_sys_content_t ;
-u :后面接身份识别,例如 system_u;
-r :后面街觇色,例如 system_r
四.接下来我们来介绍下portainer的使用:
1.安装服务,我们以安装sonarqube服务为例来介绍在portainer中如何管理docker容器: Alen原创,防伪水印
注意,镜像名称一定要跟在docker.io上查到的一样,不需要手动将镜像pull下来,在image输入框内输入正确的镜像源名称之后,在点击构建容器的按钮时,portainer会自动pull镜像并注册到本地. 如果手动通过命令pull下来镜像在portainer中安装时可能会出现无法修改并重新构建容器的问题!!!!!一定要按照对应服务的要求映射好端口,或者设置为自动映射,自动映射只需要将 Publish all exposed network ports to random host ports后面的滑块设置为true即可,这样portainer会根据需要自动映射出端口,不过这样映射的端口每次重启后都会变化,所以在生产环境尽量还是自己设置为固定端口好一点
Alen原创,防伪水印
No Leanote account? Sign up now.