1、创建容器
1.1、拉取容器
以前能够直接拉取镜像,现在国内镜像源被禁了,国外的又有墙,这里放一个毛子的镜像源,时灵时不利的。
复制粘贴到/etc/docker/deamon.json里面就行,没有的话自己创建一下
{
"stry-mirrors": [
"https://docker.m.daocloud.io",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://noohub.ru",
"https://registry-1_docker_io.relufi.top"
]
}
portainer分为社区版和商业版,商业版需要花钱升级,这里使用的是社区版。
指令:
docker pull portainer/portainer-ce:latest
1.2、创建docker-compose.yml文件
这里启动是通过docker-compose启动的,它能够一次性启动多个容器,同时指令也比较简单,所以这里使用它来启动容器。
文件内容如下:
version: '3'
services:
portainer:
image: portainer/portainer-ce:latest
ports:
- "9000:9000"
volumes:
- "/docker/portainer/run/docker.sock:/var/run/docker.sock"
- "/docker/portainer/data:/data"
restart: always
container_name: portainer
image:镜像名称
ports:映射的端口号,对应docker指令的-p
volumes:挂载目录,将容器的目录挂载到宿主机,对应docker指令的-v
restart:是否重启,always表示会一直重启,包括意外宕机,服务器重启等
container_name:容器名称,对应docker指令的--name
1.3、启动容器
前面创建的文件就是启动容器的依据
下面介绍几个常用的compose指令
docker-compose up #前台启动容器
docker-compose up -d #后台启动容器
docker-compose down #停止并删除容器
前两个对应docker指令的run,后一个对应stop和rm
一般来说想确定文件写得有没有问题,先up一下,看会不会报错,以及使用时会不会出现问题,不会的话就down掉,再-d启动,反之则根据报错信息比如端口占用或者哪一行没写对之类的调整文件。
1.4、开放防火墙
如果有域名的话,可以通过nginx进代理,创建一个二级域名,将这个域名指向这个端口的容器即可,如果没有的话,就在服务器防火墙开放这个端口的访问权限以及在服务器运营商后台管理页面开启这个端口的访问权限。
下面是服务器开启防火墙端口的指令:
#开放端口
firewall-cmd --zone=public --permanent --add-port=9000/tcp
#检查端口是否开放
firewall-cmd --list-all
如果没有刚刚的端口的话,可能需要重启防火墙。
#重启防火墙
service iptables restart
#开启防火墙
systemctl start firewalld.service
#关闭防火墙
systemctl stop firewalld.service
#防火墙开机自启
systemctl enable firewalld.service
以上指令,当重启防火墙不生效,执行停止防火墙,在启动防火墙,另外最好是开启防火墙开机自启,不然服务器宕机重启之后,防火墙就失去了拦截的效果了。
1.5、浏览器访问容器
可以得到以下页面
账号密码好想是第一次登录的时候设定的,我这个是之前弄的容器,所以现在直接就是登录。
2、poretainer使用
2.1、基础面板
详细用法就由各位自行探索了,这里介绍一些基本的东西
user选项:用户选项,可以在这里添加用户,并赋予这个用户相应的权限,并非所有人都适合拥有管理员权限,但可惜的是,社区版非管理员用户能看到的东西很是有限,甚至不能进不了容器管理页面。
environment选项:即portainer的面板,除了可以绑定自己服务器之外,还能绑定别的服务器的(大概,这个没尝试过)红框那个就是新建的,输入的是另一个portaine的地址
其余的功能我没用过,这里就不展开讲了。
2.2、管理页面
如图,堆栈信息,容器信息,镜像信息,网络信息等都是有的。可以通过这个地方拉取镜像(目前大概率是不行了,国外镜像源被墙,国内镜像源都关了)
2.2.1、镜像相关
上面拉取镜像,下面管理镜像
2.2.2、容器相关
除了启停删除容器还能创建容器
还能进到容器里面查看额外的信息,例如日志之类的信息。
2.2.3、网络管理
创建容器的时候会默认创建一个网络,建议是通过yml文件统一管理这个网络
差不多就到这里了。