一、安装docker
二、安装docker-compose
三、docker-compose部署portainer
yml文件,需要开放9000端口
[root@lgb /]# vi /opt/docker-compose-yml/portainer/docker-compose.yml
version: "3"
services:
portainer:
image: portainer/portainer:latest
container_name: portainer
ports:
- "9000:9000"
volumes:
- /app/portainer/data:/data
- /var/run/docker.sock:/var/run/docker.sock
?切换到docker-compose.yml所在目录启动
[root@lgb portainer]# pwd
/opt/docker-compose-yml/portainer
[root@lgb portainer]# ls
docker-compose.yml
[root@lgb portainer]# docker-compose -f docker-compose.yml up
?访问IP:9000,默认没有系统账号,需要新设置密码,不少于8位数。登录后,选择本地local。
注意需要在五分钟内访问并注册admin用户,否则容器会自动停止,如果错过时间请使用docker-compose??-f docker-compose.yml restart
另外,需要注意的两个docker-compose命令
#容器停止删除所有数据
docker-compose -f docker-compose.yml down
#容器停止但不会删除数据,使用restart可以重启容器,且数据仍然存在
docker-compose -f docker-compose.yml stop
四、portainer新建nginx容器
4.1拉取镜像
4.2创建容器
Add cantainer
创建nginx容器,端口映射为主机9001:容器80
创建成功?
9001端口访问测试
?也可以通过终端查看
[root@lgb /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7aa4717f61df nginx:latest "/docker-entrypoint.…" 5 minutes ago Up 5 minutes 0.0.0.0:9001->80/tcp, :::9001->80/tcp nginx
76ee8a00f17d portainer/portainer:latest "/portainer" About an hour ago Up About an hour 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp portainer
?stop一下然后重启restart,仍然可以用就账户登录,挂载数据/app/portainer/data仍然存在,说明数据保留。
[root@lgb portainer]# docker-compose -f docker-compose.yml stop
[+] Stopping 1/1
? Container portainer Stopped 0.1s
[root@lgb portainer]# docker-compose -f docker-compose.yml restart
[+] Restarting 1/1
? Container portainer Started
?查看挂载目录/app/portainer/data
[root@lgb portainer]# ls /app/portainer/data
bin compose config.json portainer.db portainer.key portainer.pub tls
?解释一下目录挂载 /var/run/docker.sock:/var/run/docker.sock
挂载/var/run/docker.sock文件是被被映射到了容器内,有以下两个作用:
1.在容器内只要向/var/run/docker.sock发送http请求就能和Docker Daemon通信。
2.如果容器内有docker文件,那么在容器内执行docker ps、docker port这些命令,和在宿主机上执行的效果是一样的,因为它们的请求发往的是同一个docker daemon;
参考:
Docker-compose离线安装_离线安装docker-compose-CSDN博客