白夜瞭望

夢の中の夢
うつし世はゆめ 夜の夢こそまこと
  1. 首页
  2. VPS设置
  3. 正文

安装Docker、Docker-compose,并设置Wordpress、Gogs、Nextcloud等

2018年12月21日 8058点热度 0人点赞 0条评论

Contents

使用Ubuntu18.04 或 Archlinux

安装常用软件

有些软件本次没用到

#Ubuntu安装常用软件
sudo apt-get update  && apt install htop curl unzip \
byobu git zsh vim screenfetch neofetch python \
lsof psmisc bmon  net-tools 
#ArchLinuxCN源
sudo nano /etc/pacman.d/mirrorlist
#添加:
[archlinuxcn]
Server = https://cdn.repo.archlinuxcn.org/$arch
# 安装Key
sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring
# Archlinux安装常用软件
pacman -S openssh proxychains fish curl unzip \
python3 python2  zsh git htop iftop screenfetch   \
neofetch emacs ntfs-3g vim sudo net-tools lsof psmisc bmon samba 
# zerotier,内网穿透
curl -s https://install.zerotier.com/ | sudo bash
# 设置时区为上海
sudo timedatectl set-timezone  Asia/Shanghai
# ohmyzsh,事前需要安装zsh、git
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

安装Docker

参考 https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce

# Ubuntu 18.04 安装Docker-ce
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Archlinux
sudo pacman -S docker
sudo groupadd docker
sudo usermod -aG docker $USER
sudo systemctl enable docker
sudo systemctl restart docker

# 创建docker本地文件存储文件夹,接下来会用到
mkdir /root/docker/ && mkdir /root/docker/wordpress \
&& mkdir /root/docker/nextcloud/ && mkdir /root/docker/nextcloud/config \
&& mkdir /root/docker/nextcloud/data  && mkdir /root/docker/gogs

Docker基本操作

#列出容器
docker ps
#进入某个容器
docker exec -it wordpress bash
# 解决wordpress文件权限不对、无法升级的问题,用户组与路径按实际情况情况,未必是“www-data”或 “/var/www/html”。
sudo chown -R www-data /var/www/html
sudo chmod +755 /var/www/html
#列出容器
docker ps
#进入某个docker容器
docker exec -it somedocker bash

安装Docker-compose

最新版本参照 https://github.com/docker/compose/releases

# 这里安装的是目前最新的1.24.1版
sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

配置Docker-compose

docker-compose.yml,把这个文件上传到/root/docker/ 文件夹下面

version: "3"
volumes:
  mariadb_data:
  phpmyadmin_data:
  nextcloud_data:
services:
  # 数据库 mariadb  
  mariadb_for_all:
    image: mariadb
    container_name: mariadb_for_all
    restart: always
    volumes:
      - mariadb_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: "替换为你想使用的密码"
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: 替换为你想使用的密码
  #数据库管理 phpMyAdmin https://hub.docker.com/r/phpmyadmin/phpmyadmin
  phpmyadmin:
    depends_on:
      - mariadb_for_all
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    restart: always
    ports:
      - "9081:80"
    volumes:
      - phpmyadmin_data:/sessions
    environment:
      MYSQL_ROOT_PASSWORD: 替换为你想使用的密码
  # 博客 wordpress https://hub.docker.com/_/wordpress/
  wordpress:
    depends_on:
      - mariadb_for_all
    image: wordpress:latest
    container_name: wordpress
    volumes:
      # 数据卷挂载路径设置,需要事先建立宿主机路径 
      - /root/docker/wordpress:/var/www/html/
      # 修改PHP文件上传大小限制文件
      - /root/docker/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini 
    ports:
      - "127.0.0.1:1080:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: mariadb_for_all:3306
      # 需要进入手动mariadb,创建下面的用户+数据库(也可以自动创建)
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_NAME: wordpress
      WORDPRESS_DB_PASSWORD: 替换为你想使用的密码
  #网盘 nextcloud  https://hub.docker.com/_/nextcloud/
  nextcloud:
    depends_on:
      - mariadb_for_all
    image: nextcloud
    container_name: nextcloud
    volumes:
      - nextcloud_data:/var/www/html
      # 数据卷挂载路径设置,需要事先建立宿主机路径 
      - /root/docker/nextcloud/config:/var/www/html/config
      - /root/docker/nextcloud/data:/var/www/html/data
    ports:
      - "127.0.0.1:2080:80"
    restart: always
    environment:
      MYSQL_HOST: mariadb_for_all:3306
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: 替换为你想使用的密码
      # 自动设定管理员账号密码
      NEXTCLOUD_ADMIN_USER: bai
      NEXTCLOUD_ADMIN_PASSWORD: 替换为你想使用的密码
  # 私人git gogs https://hub.docker.com/r/gogs/gogs/
  # 文档: https://gogs.io/docs/installation
  gogs:
    depends_on:
      - mariadb_for_all
    image: gogs/gogs
    container_name: gogs
    volumes:
      # 数据卷挂载路径设置,需要事先建立宿主机路径 
      - /root/docker/gogs:/data
    ports:
      - "10022:22"
      - "127.0.0.1:3000:3000"
    restart: always
sudo nano /root/docker/uploads.ini
# 加入以下内容
file_uploads = On
memory_limit = 500M
upload_max_filesize = 30M
post_max_size = 30M
max_execution_time = 600

运行所有容器

cd /root/docker
sudo docker-compose up
# 后台启动并运行所有的容器
sudo docker-compose up -d
# 停止所有容器
sudo docker-compose down
# docker-compose更新镜像, 然后启动容器
sudo docker-compose up -d --build

手动设置数据库

Wordpress的数据库在docker-compose文件中,用定义environment的方式自动创建好了
剩下Nextcloud、Gogs需手动设置

# 进入miriadb容器
docker exec -it mariadb_for_all bash
# 进入mysql
mysql -uroot -p

# nextcloud
# 新建一个名为nextcloud的用户
CREATE USER 'nextcloud' IDENTIFIED BY '替换为你想使用的密码';
# 为nextcloud创建一个名为nextcloud_db数据库
CREATE DATABASE IF NOT EXISTS nextcloud_db;
# 给nextcloud用户权限
GRANT ALL PRIVILEGES ON nextcloud_db.* TO 'nextcloud' IDENTIFIED BY '替换为你想要的数据库密码';

# gogs
# 新建一个名为gogs的用户
CREATE USER 'gogs' IDENTIFIED BY '替换为你想使用的密码';
# 为gogs创建一个名为gogs_db数据库
CREATE DATABASE IF NOT EXISTS gogs_db;
# 给nextcloud用户权限
GRANT ALL PRIVILEGES ON gogs_db.* TO 'gogs' IDENTIFIED BY '替换为你想要的数据库密码';
#退出
quit
exit

Docker图形化管理

简单轻量的portainer

docker volume create portainer_data
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

数据库常用指令

#显示数据库
SHOW DATABASES;
# 使用某个数据库
USE nextcloud_db;
# 显示所有的表
SHOW TABLES;
#查看所有用户及权限
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
#删除某个数据库,当然有重要数据同时又没备份的话,最好不要这么做。
drop database nextcloud;

caddy安装与设置

简单的HTTP2服务器

# 安装caddy个人版与附加插件
curl https://getcaddy.com | bash -s personal http.filemanager,http.forwardproxy,http.geoip,http.git,http.webdav,tls.dns.cloudflare
# 第一次需手动确认
caddy --conf /root/CaddyFile.conf
# 后台运行
nohup caddy --conf /root/CaddyFile.conf

设置文件(CaddyFile.conf):

https://www.yumenaka.net, https://yumenaka.net {
gzip 
tls test@yumenaka.com
# log日志输出路径
log http2-access.log
#转发wordpress到主域名
proxy / localhost:1080 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
}
}
# 转发其他端口各种服务
# nextcloud
https://nextcloud.yumenaka.net {
gzip 
tls test@yumenaka.com
proxy / localhost:2080 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
    }
}
#转发gogs私人git
https://git.yumenaka.net {
gzip 
tls test@yumenaka.com
proxy / localhost:3000 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
    }
}
#转发portainer
https://portainer.yumenaka.net {
gzip 
tls test@yumenaka.com
proxy / localhost:9000 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Proto {scheme}
    }
}
#caddy的插件网盘
https://file.yumenaka.net {
gzip 
tls test@yumenaka.com
filemanager / {
    show   /root/caddy/file 
    database /root/caddy/filemanager.db
    allow_new      true
    allow_edit     true
    allow_commands true
    }
}
#HTTP链接,重定向到HTTPS
http://yumenaka.net  {
 timeouts none
 redir https://yumenaka.net{url}
}
https://www.yumenaka.net {
 timeouts none
 redir https://www.yumenaka.net{url}
}
http://portainer.yumenaka.net {
 timeouts none
 redir https://portainer.yumenaka.net{url}
}
http://nextcloud.yumenaka.net {
 timeouts none
 redir https://nextcloud.yumenaka.net{url}
}
http://file.yumenaka.net {
 timeouts none
 redir https://file.yumenaka.net{url}
}
http://git.yumenaka.net {
 timeouts none
 redir https://git.yumenaka.net{url}
}

网页配置与初始化

密码与端口,参考“docker-compose.yml”
详细略过、反正不难,而且都是中文页面

代理相关

https://www.yumenaka.net/2018/12/22/linuxproxy/

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: archlinux caddy docker docker-compose gogs linux nextcloud ubuntu wordpress
最后更新:2019年7月20日

bai

文案为生的业余画师,偶尔客串程序员。

点赞
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

Copyright © 2022 yumenaka.net All Rights Reserved.

Theme Kratos Made By Seaton Jiang