1.Ubuntu 系统下载
我用的是山东大学的镜像站的 desktop 版本,就是有 GUI 图形界面,不需要图形界面可以下载 server 版本
2.开启 SSH 启用 root 用户远程登陆
我需要 MobaXterm 进行连接,所以安装完系统后需要开启 SSH,不需要使用远程工具远程可以跳过这个步骤
- 安装 SSH
apt-get install openssh-server
- 打开 SSH 配置文件 /etc/ssh/sshd_config。你可以使用你喜欢的文本编辑器来编辑它,比如使用 nano 或者 vi/vim。这里以 nano 为例:
sudo nano /etc/ssh/sshd_config
将 PermitRootLogin prohibit-password
修改为 PermitRootLogin yes
后保存
修改前:
修改后:
- 重启 SSH 服务,如果报错可能是 sshd
sudo systemctl restart ssh
- 设置 root 用户强密码
sudo passwd root
3.安装 Docker
所有命令最好都在 root 用户下运行
sudo -i
- 运行以下命令卸载所有冲突的包:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
- 安装 Docker 软件包
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- 通过运行
docker version
映像来验证 Docker 引擎安装是否成功,会显示安装的版本
docker version
4.创建 docker-compose.yml 文件
#创建目录
mkdir /opt/nextcloud
cd /opt/nextcloud/
#nano创建编辑docker-compose.yml文件,Ctrl+O写入,Ctrl+X退出;也可以用vim看个人喜欢
nano docker-compose.yml
docker-compose.yml 填入以下内容,根据需要修改以下配置
容器默认时区为 UTC 时区,所以修改为上海时区
version: '3.8'
services:
db:
image: mysql:latest
container_name: nextcloud_mysql # 自定义容器名称
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password # 定义 MySQL 的 root 密码
MYSQL_PASSWORD: your_password # 定义 MySQL 用户的密码
MYSQL_DATABASE: nextcloud # 创建数据库名为 nextcloud
MYSQL_USER: nextcloud # 定义 MySQL 用户名
TZ: Asia/Shanghai # 设置时区为上海
volumes:
- mysql_data:/var/lib/mysql # MySQL 数据持久化
networks:
- nextcloud_network
app:
image: nextcloud:latest
container_name: nextcloud # 自定义容器名称
restart: always
depends_on:
- db
environment:
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: your_password # MYSQL密码
MYSQL_HOST: db
TZ: Asia/Shanghai # 设置时区为上海
volumes:
- nextcloud_data:/var/www/html # Nextcloud 数据持久化
ports:
- "8080:80"
networks:
- nextcloud_network
onlyoffice:
image: onlyoffice/documentserver:7.1.0
container_name: nextcloud_onlyoffice # 自定义容器名称
restart: always
environment:
JWT_ENABLED: 'false' # 关闭 JWT,因此不需要密钥
JWT_SECRET: # 不设置密钥
TZ: Asia/Shanghai # 设置时区为上海
ports:
- "8081:80"
networks:
- nextcloud_network
networks:
nextcloud_network: # 定义网络
volumes:
mysql_data: # 定义 MySQL 的数据卷
nextcloud_data: # 定义 Nextcloud 的数据卷
运行
docker compose up -d
然后查看运行中的容器
docker ps -a
[](http://aiqianji.oss-cn-shenzhen.aliyuncs.com/images/2024/11/01/af63e8dd9