Ubuntu系统和Docker的奇妙故事

Ubuntu系统和Docker的奇妙故事

四月 07, 2022

装系统

下载镜像,制作

跳过更新过程

找到软件和更新

寻找最佳镜像源

设置好再更新镜像

内网穿透

frp进行穿透

公网服务器

frps.ini

1
2
3
[common]
bind_port = 7000
token =sss 密钥和客户端一样就行

私有服务器

frpc.ini

1
2
3
4
5
6
7
8
9
10
11
[common]
server_addr = 公网服务器ip
server_port = 7000
token =sss

[pve-web]
type = tcp
local_ip = 192.168.50.200
local_port = 8888
remote_port = 8888

1
2
3
4
5
local_ip //私有服务器地址

local_port //本地的应用端口

remote_port //映射到服务器的端口

linux

下载

一定要下_linux_amd64.tar.gz的,架构可以选,其他的darwin_amd64.tar.gzUbuntu运行不了

到相关文件夹下

1
sudo ./frps -c frps.ini

如果在其他用户群

1
su -l [user]

不加的话默认root权限管理员

1
sudo ./frpc -c frpc.ini

win

cmd指令相关文件夹下

1
2
frps.exe -c frps.ini
frpc.exe -c frpc.ini

可以将此命令写出bat放进开始文件夹,变成开机启动项。

虚拟组网

zerotier 虚拟组网

原理就是先通过zerotier中继器进行联网,然后尝试让两者进行p2p连接。

Linux麻烦一点

1
2
zerotier-cli join id//加入并连接
zerotier-cli leave id//断开连接

转载自别人视频的东西

docker镜像加速

请把 docker 更换源工具解压至用户主目录

打开终端运行

ds.sh

1
2
3
4
5
6
7
8
9
10
11
12
#! /bin/bash

date "+%Y年%m月%d日 周%w %H:%M:%S"
echo '为 Docker 更换官方国内源加速下载'
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
service docker restart
docker info|grep "Registry Mirrors" -A 1
echo '显示 registry.docker-cn.com 即换源成功'

更换 Docker 国内官方源

sudo sh ds.sh

修复 Docker 无管理员权限运行失败的问题

sudo gpasswd -a $USER docker

newgrp docker

service docker restart

来自科技宅小明的视频

一定要切换镜像源!!!一定要切换镜像源!!!一定要切换镜像源!!!一定要切换镜像源!!!一定要切换镜像源!!!一定要切换镜像源!!!一定要切换镜像源!!!一定要切换镜像源!!!一定要切换镜像源!!!一定要切换镜像源!!!

装Docker

也可以看菜鸟教程装Docker

更新 apt 工具及索引,以支持 https 存储库

1
2
3
4
5
6
7
sudo apt-get update

sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release

添加 Docker 官方 GPG 密钥(用于签名/验证、加密/解密)

1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

设置 stable 版稳定存储库(区别于夜间版/测试版 nightly / test )

1
2
3
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

更新 apt 工具及索引,并安装 Docker

1
2
3
sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io

验证 Docker Engine 是否正确安装(显示 “Hello from Docker!” 即为成功安装)

1
sudo docker run hello-world

为 Docker 安装图形化操作界面 Portainer

创建 Portainer Server 存储数据库的卷

1
sudo docker volume create portainer_data

下载并安装 Portainer Server 容器

1
2
3
4
5
sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest

查看 Docker 容器状态(NAMES 标签出现 portainer/portainer-ce 则成功运行)

1
sudo docker ps

使用 Ubuntu 自带的火狐浏览器访问(https://127.0.0.1:9443/)
或使用局域网内另一台计算机/手机的浏览器访问(https://服务器的IP:9443/)

对 Portainer 初始设置
设置用户名及密码(8位字符或数字),点击 Get Started,载入后点击 local 即可

启用 Web 个人导航页

将 nginx 文件夹解压至 /home/你自己的用户名/ 之下

下载 Nginx 镜像

Portainer 点击 Images 镜像,docker.io 右侧填入 nginx,点击 Pull the image 下载镜像

部署并运行 Nginx 容器(可以理解为把 Nginx 镜像作为小型虚拟机启动)

点击 Containers 标签,点击 Add Container 启动容器,名称填入Nginx,docker.io 右侧填入 nginx:latest(Images 标签页 Tags 标签选项)。

Manual network port publishing 手动发布网口设置项,把本地80端口映射到容器80端口。

在Advanced container settings高级容器设置中,点击map additional volume 映射附加卷,点击绑定文件夹及可读写,本地文件夹填入 /home/你自己的用户名/nginx/ 容器文件夹填入 /usr/share/nginx/html

Restart policy 重启策略调整为 Always 永远自动启动。

最后点击 Deploy the container 部署容器

使用 Ubuntu 自带的火狐浏览器访问(http://127.0.0.1)
或使用局域网内另一台计算机/手机的浏览器访问(http://服务器的IP)

来自GitHub大佬的分享

来自各种生活的容器服务,上链接

搭建 Mattermost 私人聊天室

命令方式安装 Docker 版 Mattermost

1
2
3
4
5
6
7
docker run \
-d \
--name mattermost-preview \
--restart=always \
--publish 8065:8065 \
--add-host dockerhost:127.0.0.1 \
mattermost/mattermost-preview

设置 Mattermost 私人聊天室

访问 127.0.0.1:8065 网址,输入邮箱用户名及密码进行初始账户注册
选择第二项进入控制台,进入SITE CONFIGURATION - Localization更改语言为中文
保存返回上一步,新建群组PQMing(可以自行改名),点击Finish完成
新页面输入用户名,上传头像(可选)并保存,保存团队,不起用通知
复制邀请链接,之后可以分享给朋友,稍等一会就完成设置
默认的管理员账户仍然是英文,点击右上角设置,Display里改成中文即可
新用户入群后会自动进入公共和闲聊这两个频道,用户之间可以选择群聊或私信

免费使用为知笔记

访问用户主目录文件夹

1
cd ~

在主目录新建 wizdata 文件夹用于存储笔记数据

1
mkdir wizdata

命令方式安装 Docker 版为知笔记

1
2
3
4
5
6
7
8
9
10
docker run \
-it \
-d \
--name wiz \
--restart=always \
-v ~/wizdata:/wiz/storage \
-v /etc/localtime:/etc/localtime \
-p 8080:80 \
-p 9269:9269/udp \
wiznote/wizserver

搭建个人博客 Wordpress

安装 Docker 版 mariadb 数据库命令,可自行替换密码(默认为meimima)

1
2
3
4
5
6
7
docker run -d \
--name mariadb \
-p 3306:3306 \
-e MARIADB_ROOT_PASSWORD=meimima \
-e MARIADB_DATABASE=wordpress \
--restart=always \
mariadb:latest

安装 Docker 版 Wordpress 命令,需要自行替换为本机 IP 地址(采用上一步数据库密码meimima)

1
2
3
4
5
6
7
8
9
10
11
docker run \
-d \
--name wordpress \
-e WORDPRESS_DB_HOST=服务器IP:3306 \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=meimima \
-e WORDPRESS_DB_NAME=wordpress \
-e WORDPRESS_TABLE_PREFIX=wp_ \
-p 8081:80 \
--restart=always \
wordpress

使用浏览器登陆服务器 IP:8081(例:192.168.2.15:8081)访问博客

可选 安装 mariadb 数据库控制面板 phpmyadmin 手动管理数据库

安装 Docker 版 phpmyadmin 数据库控制面板命令

1
2
3
4
5
6
7
8
docker run \
-d \
--name phpmyadmin \
--link mariadb \
-e PMA_HOST="mariadb" \
-p 8082:80 \
--restart=always \
phpmyadmin

使用浏览器登陆服务器 IP:8082(例:192.168.2.15:8082)访问数据库控制面板
使用安装 phpmyadmin 命令中的密码(默认为meimima)及用户名 root 登陆数据库
点击控制面板左侧 新建 按钮,创建名为 wordpress 的数据库

免费网盘 SeaFile 安装教程

docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
version: '2.0'
services:
db:
image: mariadb:10.5
container_name: seafile-mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=db_dev # 设置数据库根用户的密码
- MYSQL_LOG_CONSOLE=true
volumes:
- /home/seafile-mysql/db:/var/lib/mysql # 设置数据库存储位置
networks:
- seafile-net

memcached:
image: memcached:1.5.6
container_name: seafile-memcached
restart: always
entrypoint: memcached -m 256
networks:
- seafile-net

seafile:
image: seafileltd/seafile-mc:latest
container_name: seafile
ports:
- "81:80" # 主机81端口映射至容器80端口http
- "4433:443" # 主机4433端口映射至容器443端口https
- "8088:8080" # 主机8088端口映射至容器8080端口webdav
volumes:
- /home/seafile-data:/shared # 设置Seafile数据存储位置
restart: always
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=db_dev # 与第一条注释所设置密码相同
- TIME_ZONE=Asia/Shanghai # 设定时区为上海
- SEAFILE_ADMIN_EMAIL=me@example.com # 设置管理员账户,默认为 'me@example.com'
- SEAFILE_ADMIN_PASSWORD=asecret # 设置管理员密码,默认为 'asecret'
# - SEAFILE_SERVER_LETSENCRYPT=false # 是否启用LETSENCRYPT提供的https加密证书,默认为 'false'
- SEAFILE_SERVER_HOSTNAME=127.0.0.1:81 # 设置网盘域名地址
depends_on:
- db
- memcached
networks:
- seafile-net

networks:
seafile-net:

docker-compose原版.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
version: '2.0'
services:
db:
image: mariadb:10.5
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=db_dev # Requested, set the root's password of MySQL service.
- MYSQL_LOG_CONSOLE=true
volumes:
- /opt/seafile-mysql/db:/var/lib/mysql # Requested, specifies the path to MySQL data persistent store.
networks:
- seafile-net

memcached:
image: memcached:1.5.6
container_name: seafile-memcached
entrypoint: memcached -m 256
networks:
- seafile-net

seafile:
image: seafileltd/seafile-mc:latest
container_name: seafile
ports:
- "80:80"
# - "443:443" # If https is enabled, cancel the comment.
volumes:
- /opt/seafile-data:/shared # Requested, specifies the path to Seafile data persistent store.
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=db_dev # Requested, the value shuold be root's password of MySQL service.
# - TIME_ZONE=Asia/Shanghai # Optional, default is UTC. Should be uncomment and set to your local time zone.
- SEAFILE_ADMIN_EMAIL=me@example.com # Specifies Seafile admin user, default is 'me@example.com'.
- SEAFILE_ADMIN_PASSWORD=asecret # Specifies Seafile admin password, default is 'asecret'.
- SEAFILE_SERVER_LETSENCRYPT=false # Whether use letsencrypt to generate cert.
- SEAFILE_SERVER_HOSTNAME=seafile.example.com # Specifies your host name.
depends_on:
- db
- memcached
networks:
- seafile-net

networks:
seafile-net:

打开终端运行以下命令(输入密码界面不会显示密码)

sudo apt-get update | sudo apt-get install docker-compose -y

将 docker-compose.yml 解压至用户主目录,并修改文件内邮箱密码

访问用户主目录

cd ~

在终端运行以下命令

sudo docker-compose up -d

使用自带的火狐浏览器,访问 http://127.0.0.1:81

未更改 docker-compose.yml 文件内邮箱密码的话,默认用户名 me@example.com 密码 asecret

请在路由器转发 http 使用的 81 端口至服务器

全平台客户端下载链接 https://www.seafile.com/download/

免费网盘 SeaFile 配置教程 (https)

于各个免费平台申请相应域名的 SSL 证书

创建 /home/seafile-data/ssl 目录,然后拷贝证书文件和密钥文件至 ssl 目录下

如果网盘域名是 seafile.example.com,证书名称必须为 seafile.example.com.crt,密钥文件名称为 seafile.example.com.key

请在路由器转发 https 使用的 4433 端口至服务器