# 部署常用服务

# 数据库服务

# MySQL

docker run -itd \
--restart always \
--name mysql-dev \
-p 3307:3306 \
-v /docker/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql
docker ps 
docker logs mysql-dev
docker exec -it mysql-dev bash
mysql -h localhost -u root -p
create table class(
  id          int           primary key auto_increment, 
  cname       varchar(30)   not null, 
  description varchar(100)  null
);
show tables;
desc class;
insert into class (cname,description) 
values 
("linux","服务器知识"),
("mysql","数据库知识");

# MongoDB

docker run -itd \
--name mongo-dev \
-p 27017:27017 \
-v /docker/mongodb:/data/db \
mongo

接着使用以下命令添加用户和设置密码,并且尝试连接。

docker ps 
docker logs mongo-dev
docker exec -it mongo-dev mongo admin
# 创建一个名为 admin,密码为 123456 的用户。
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});
# 尝试使用上面创建的用户信息进行连接。
db.auth('admin', '123456')

# Redis

# /docker/redis/redis.conf
# bind 127.0.0.1 //允许远程连接
protected-mode no
appendonly yes # 持久化
requirepass 123456 # 密码 
docker run -itd \
--name redis-dev \
-p 6379:6379 \
-v /docker/redis/redis.conf:/etc/redis/redis.conf \
-v /docker/redis/data:/data \
redis
docker ps 
docker logs redis-dev
docker exec -it redis-dev /bin/bash

# 安装文件服务

# 安装 Filebrowser

# 运行一个容器
docker run -d --name filebrowser   filebrowser/filebrowser
# 拷贝配置
docker cp filebrowser:/srv  /docker/filebrowser/data
docker cp filebrowser:/.filebrowser.json  /docker/filebrowser/config.json
docker cp filebrowser:/database.db  /docker/filebrowser/database.db
# 正式运行
docker run -d --restart=always \
--name filebrowser \
--user=root \
-v /docker/filebrowser/data:/srv \
-v /docker/filebrowser/config.json:/.filebrowser.json \
-v /docker/filebrowser/database.db:/database.db \
-p 28244:80 \
filebrowser/filebrowser

你可以打开 http://localhost:28224 来访问 showdoc (localhost 可改为你的服务器域名或者 IP)

# 安装 Showdoc

# 新建存放showdoc数据的目录,并设置权限
mkdir  /docker/showdoc/html
chmod  -R 777 /docker/showdoc/
# install_showdoc.sh
docker run -d  --restart=always \
--name showdoc \
--user=root \
--privileged=true \
-p 4999:80 \
-v /docker/showdoc/html:/var/www/html/ \
star7th/showdoc
sh install_showdoc.sh

根据以上命令操作的话,往后 showdoc 的数据都会存放在 /showdoc_data/html 目录下。 你可以打开 http://localhost:4999 来访问 showdoc (localhost 可改为你的服务器域名或者 IP)。账户密码是 showdoc/123456,登录后你便可以看到右上方的管理后台入口。建议登录后修改密码。

升级

time=$(date "Y_%m%d")
mv  /docker/showdoc/html  /docker/showdoc/html_back
docker stop showdoc && docker rm showdoc
docker run -d  --restart always --name showdoc \
-p 4999:80 \
-v /docker/showdoc/html:/var/www/html/ \
--user=root \
--privileged=true \
star7th/showdoc
cp  -f  /docker/showdoc/html_bak/Sqlite/showdoc.db.php docker/showdoc/html/Sqlite/showdoc.db.php
cp  -f  /docker/showdoc/html_bak/Public/Uploads/. docker/showdoc/html/Public/Uploads
chmod  -R 777 /docker/showdoc/html

# 安装代码服务

# 安装 Gitea (推荐)

docker run  -d \
--restart=always \
--name gitea \
-v /docker/gitea:/data   \
-p 8080:3000  \
-p 8022:22  \
gitea/gitea

之后在配置界面设置外部访问地址为 http://yourwebsite/,设置 SSH 端口为 8022 你可以打开 http://localhost:8080 来访问 gogs (localhost 可改为你的服务器域名或者 IP)。

# 安装 Gogs

docker run  -d --restart=always \
--name gogs \
-v /home/ubuntu/gogs:/data   \
-p 10080:3000  \
-p 10022:22  \
gogs/gogs

之后在配置界面设置外部访问地址为 http://yourwebsite/,设置 SSH 端口为 10022 你可以打开 http://localhost:10080 来访问 gogs (localhost 可改为你的服务器域名或者 IP)。

# 安装 Gitlab

export GITLAB_HOME=/docker/gitlab 
sudo docker run --detach \
  --restart always \
  --name gitlab \
  --publish 8443:443 --publish 8080:80 --publish 8022:22 \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  gitlab/gitlab-ee:latest
# 查看 root 用户密码
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
# 编辑配置文件
vi /docker/gitlab/config/gitlab.rb
# 重启
docker restart gitlab
# 或者重载配置
docker exec -it gitlab gitlab-ctl reconfigure

# 安装穿透服务

# 安装 FRP

mkdir /docker
mkdir /docker/frp
cd /docker/frp
docker pull chenhw2/frp

服务端 假设 IP 为 123.123.123.123

docker run -d --restart=always --name frps \
    -e "ARGS=frps" \
    -v /docker/frp/frps.ini:/frp/frps.ini \
    --net host \
    chenhw2/frp

服务端配置

# frps.ini
[common]
bind_port = 7000
bind_udp_port = 7000
token = 建议随机生成

客户端

docker run -d --restart=always --name frpc \
    -e "ARGS=frpc" \
    -v /docker/frp/frpc.ini:/frp/frpc.ini \
    --net host \
    chenhw2/frp
# frpc.ini
[common]
server_addr = 123.123.123.123
server_port = 7000
token = 和服务端设置的保持一致

[bt]
type = tcp
local_ip = 127.0.0.1
local_port = 18888
remote_port = 28888

[file]
type = tcp
local_ip = 127.0.0.1
local_port = 28244
remote_port = 38244