Skip to content

Jeff941112/docker-1panel

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docker Image Version (latest semver) Docker Pulls Docker Stars GitHub Repo stars


简介

偶然看到1panel-dood的关于docker部署1panel的方法,确实好想法,点赞。

受到启发编写了一下相关文件,把1panel套娃一下。

1panel-dood有所不同的是,我是以替换二进制文件的形式来的,

因为如果使用原始安装脚本作为启动命令,当更换容器时,需要事先备份数据库文件,否则会出现数据库覆盖问题。

单主程序的好处了,正好是和之前适配1Panel 应用商店的非官方应用适配库写的GO语言的应用的Dockerfile异曲同工。

1. 注意事项

  • 由于容器内部systemd限制,部分功能目前尚不完整。

  • 不要点击容器化部署的 1Panel 右下角进行更新,应该拉取新镜像,再重新部署来应用更新。

  • 20230919:添加自动修改面板显示应用版本,无需手动修改数据库。

如果更新了更高版本的镜像,实际是更新了对应版本的二进制程序,面板显示的相关版本还需要手动更新。

相关操作查看下文。


  • 默认端口:10086
  • 默认账户:1panel
  • 默认密码:1panel_password
  • 默认入口:entrance

  • 不可调整参数
    • /var/run/docker.sock的相关映射

  • 可调整参数

推荐使用/opt路径,否则有些调用本地文件的应用可能出现异常

  • /opt:/opt 文件存储映射
  • TZ=Asia/Shanghai 时区设置
  • 1panel 容器名
  • /var/lib/docker/volumes:/var/lib/docker/volumes 存储卷映射

架构平台对应镜像

  • amd64
  • arm64
  • armv7
  • ppc64le
  • s390x

2023年9月3日已经更新单标签多镜像

docker pull moelin/1panel:latest

2. docker方式安装

docker run -d \
    --name 1panel \
    --restart always \
    --network host \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /var/lib/docker/volumes:/var/lib/docker/volumes \
    -v /opt:/opt \
    -v /root:/root \
    -e TZ=Asia/Shanghai \
    moelin/1panel:latest

3. docker-compose方式安装

创建一个docker-compose.yml文件,内容类似如下

version: '3'
services:
  1panel:
    container_name: 1panel # 容器名
    restart: always
    network_mode: "host"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
      - /opt:/opt  # 文件存储映射
      - /root:/root  # 可选的文件存储映射
    environment:
      - TZ=Asia/Shanghai  # 时区设置
    image: moelin/1panel:latest
    labels:  
      createdBy: "Apps"

然后docker-compose up -d运行

4. 修改面板显示版本

4.1 安装SQLite3

Debian系统为例,其他系统对应更改包管理器命令。

  • Debian/Ubuntu: apt-get
  • RedHat/CentOS: yum
# 更新软件包列表
apt-get update

# 安装 SQLite3,并自动回答所有提示为“是”
apt-get install sqlite3 -y

4.2 修改面板显示版本

  • 获取文件存储实际路径

在宿主机上的实际路径,假设如下

/opt
  • 备份旧数据库
# 将原始数据库文件备份为 .bak 文件
cp /opt/1panel/db/1Panel.db /opt/1panel/db/1Panel.db.bak
  • 打开数据库文件
# 打开 SQLite3 数据库
sqlite3 /opt/1panel/db/1Panel.db
  • 修改版本信息,按需修改v1.5.2
UPDATE settings
SET value = 'v1.5.2'
WHERE key = 'SystemVersion';
  • 退出修改
.exit
  • 重启面板应用更改
# 重新启动 1panel 容器
docker restart 1panel

5. 镜像编译

docker build --build-arg PANELVER=your_desired_version -t your_image_name:tag .

  • 例子1:
docker build --build-arg PANELVER=v1.4.3 -t 1panel:v1.4.3 .

  • 例子2:
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7,linux/ppc64le,linux/s390x \
--build-arg PANELVER=v1.4.3 -t moelin/1panel:v1.4.3 --push .

About

Docker方式运行的1Panel;1Panel running in Docker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 76.4%
  • Dockerfile 23.6%