$ curl -sSL https://get.daocloud.io/docker | sh
#启动docker服务并设置开机自启
$ systemctl start docker && systemctl enable docker
2.安装Docker Compose
$ curl -L https://get.daocloud.io/docker/compose/releases/download/v2.2.3/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
#首先创建一个项目目录并进入
$ mkdir /kodbox && cd /kodbox
#设置环境变量(必须修改等号右边的值,形式如 `MYSQL_USER=kodbox`,注意不要包含&符号),这些在docker启动时会自动传入容器
$ vi .env
#下面是文件内容
MYSQL_ROOT_PASSWORD=[数据库ROOT密码]
MYSQL_DATABASE=[新建数据库名称]
MYSQL_USER=[新建数据库用户名]
MYSQL_PASSWORD=[新建数据库用户密码]
#新建docker-compose.yml 文件
$ vi docker-compose.yml
version: "3.5"
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- "./db:/var/lib/mysql" #左边 ./db 代表数据库持久化目录位置
environment:
- "TZ=Asia/Shanghai"
- "MYSQL_ROOT_PASSWORD"
- "MYSQL_DATABASE"
- "MYSQL_USER"
- "MYSQL_PASSWORD"
app:
image: kodcloud/kodbox
ports:
- 80:80 #左边 80 是主机访问端口,可按需修改
links:
- db
- redis
volumes:
- "./site:/var/www/html" #左边 ./site 代表kodbox持久化目录位置
restart: always
redis:
image: redis:alpine
environment:
- "TZ=Asia/Shanghai"
restart: always
#进入项目目录,执行docker-compose 启动命令,会自动拉取容器并运行
$ docker-compose up -d
#下面是输出内容
Creating network "kodbox_default" with the default driver
Creating kodbox_redis_1 ... done
Creating kodbox_db_1 ... done
Creating kodbox_app_1 ... done
#列出docker容器,可以看到3个容器正在运行
$ docker ps
#下面是输出内容
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f596f5b00305 kodcloud/kodbox "/entrypoint.sh /usr…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp, 9000/tcp kodbox_app_1
5f94f6d1aabb mariadb "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp kodbox_db_1
e6296b23fb0a redis:alpine "docker-entrypoint.s…" About a minute ago Up About a minute 6379/tcp kodbox_redis_1
#如果需要停止服务
$ docker-compose down
#下面是输出内容
Stopping kodbox_app_1 ... done
Stopping kodbox_db_1 ... done
Stopping kodbox_redis_1 ... done
Removing kodbox_app_1 ... done
Removing kodbox_db_1 ... done
Removing kodbox_redis_1 ... done
Removing network kodbox_default
#因为数据库和kodbox已经挂载了持久化目录,需要时可以重新启动,不用担心数据丢失
$ docker-compose up -d
4. 访问服务器 http://IP地址:[映射端口]
,在网页填写配置,完成初始化。
其他
通过环境变量自动配置
kodbox容器支持通过环境变量自动配置。您可以在首次运行时预先配置安装页面上要求的所有内容。要启用自动配置,请通过以下环境变量设置数据库连接。
MYSQL/MariaDB:
MYSQL_DATABASE
数据库名称.
MYSQL_USER
数据库用户.
MYSQL_PASSWORD
数据库用户密码.
MYSQL_SERVER
数据库服务地址.
MYSQL_PORT
数据库端口,默认3306
如果设置了任何值,则在首次运行时不会在安装页面中询问这些值。通过使用数据库类型的所有变量完成配置后,您可以通过设置管理员和密码(仅当您同时设置这两个值时才有效)来配置kodbox实例:
KODBOX_ADMIN_USER
管理员用户名,可以不设置,访问网页时自己填.
KODBOX_ADMIN_PASSWORD
管理员密码,可以不设置,访问网页时自己填.
redis/memcached:
SESSION_TYPE
缓存类型,默认redis,仅当配置SESSION_HOST
时生效.
SESSION_HOST
缓存地址.
SESSION_PORT
缓存端口,默认6379,仅当配置SESSION_HOST
时生效.