======= Dockers ======= Install ======= .. tab-set:: .. tab-item:: Linux-Tsinghua 可以使用别的安装方式,但是最简单的还是 \ `清华的安装链接 `_ .. code-block:: bash export DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce" curl -fsSL https://get.docker.com/ | sh curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose .. tab-item:: Linux 可以使用别的安装方式,但是最简单的还是 .. code-block:: bash curl -fsSL https://get.docker.com -o install-docker.sh sh install-docker.sh curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose .. tab-item:: MacOS 我尝试过Docker-desktop, 只能说体验很差,经常斯基。 改用了 \ `orbstack `_ , 世界一下就变美好了。 .. tab-item:: Windows Windows Install docker-compose ---------------------- refer to \ `https://docs.docker.com/compose/install/standalone/ `_ .. code-block:: bash curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose Miscellaneous ============= Proxy Settings -------------- 这个问题在 \ `SJTUG(上海交通大学 Linux 用户组)发布公告称已下架 Docker Hub 镜像 `_ 后更加致命, 再看了 `如何为终端、docker 和容器设置代理 | Moralok `_ 的博客描述后,感觉有了以下认识: 按照文档说明,如果你想要 \ :code:`docker-compose up`\ 或者 \ :code:`docker build`\ 的时候使用proxy。 see \ `Docker daemon configuration `_ see \ `Configure daemon with systemd `_ 具体来说就是 编辑 \ :code:`/etc/docker/daemon.json`\ .. code-block:: bash { "default-address-pools": [ { "base": "172.28.0.0/16", "size": 24 } ], "proxies": { "http-proxy": "http://xxx", "https-proxy": "http://xxx", "no-proxy": "*.cn,*.edu.cn,127.0.0.0/8,172.0.0.0/8,10.0.0.0/8" } } 如果你想要docker跑在proxy下面,这里的意思是docker内部的网络是跑在proxy下面 see \ `Configure Docker to use a proxy server `_ 编辑 \ :code:`~/.docker/config.json`\ 文件 .. code-block:: bash { "proxies": { "default": { "httpProxy": "http://xxx", "httpsProxy": "http://xxx", "noProxy": "*.cn,*.edu.cn,127.0.0.0/8,172.0.0.0/8,10.0.0.8/8" } } } Docker-composes =============== 关于docker-compose,我个人是更支持的,因为不用每次都从头跑docker命令,很多时候还会忘记,写一个 \ :code:`run_docker.sh`\也没必要,还不如直接写 \ :code:`docker-compose up -d --build`\ 多么简单方便。 可以考虑从 \ `fatedier/frp `_ 这个页面查看当前的版本号和OS操作系统的名字。 例如, .. code-block:: bash ENV FRP_VERSION 0.49.0 ENV OS linux_arm64 frp --- frp主要包括客户端的 \ :code:`frpc`\ 和 服务端的 \ :code:`frps`\, 其主要是实现内网穿透的工具。这里是他的项目链接 \ `frp/github `_ 虽然有一些\ `frp的docker `_, 但是有时候更新不是很及时。所以自己写了一个简单的,查看如下。 frpc ^^^^ .. code-block:: bash curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/frp/frpc/Dockerfile curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/frp/frpc/docker-compose.yml .. dropdown:: \ :code:`Dockerfile`\ .. literalinclude:: ../../dockers/frp/frpc/Dockerfile .. dropdown:: \ :code:`docker-compose.yml`\ .. literalinclude:: ../../dockers/frp/frpc/docker-compose.yml frps ^^^^ .. code-block:: bash curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/frp/frps/Dockerfile curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/frp/frps/docker-compose.yml .. dropdown:: \ :code:`Dockerfile`\ .. literalinclude:: ../../dockers/frp/frps/Dockerfile .. dropdown:: \ :code:`docker-compose.yml`\ .. literalinclude:: ../../dockers/frp/frps/docker-compose.yml server_status ------------- .. code-block:: bash curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/server_status/Dockerfile curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/server_status/docker-compose.yml .. dropdown:: \ :code:`Dockerfile`\ .. literalinclude:: ../../dockers/server_status/Dockerfile .. dropdown:: \ :code:`docker-compose.yml`\ .. literalinclude:: ../../dockers/server_status/docker-compose.yml server_status_rust ------------------ .. code-block:: bash curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/server_status_rust/Dockerfile curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/server_status_rust/docker-compose.yml .. dropdown:: \ :code:`Dockerfile`\ .. literalinclude:: ../../dockers/server_status_rust/Dockerfile .. dropdown:: \ :code:`docker-compose.yml`\ .. literalinclude:: ../../dockers/server_status_rust/docker-compose.yml rathole ------- \ `Github `_ rathole client ^^^^^^^^^^^^^^ .. code-block:: bash curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/rathole/client/Dockerfile curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/rathole/client/docker-compose.yml curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/rathole/client/client.toml .. dropdown:: \ :code:`Dockerfile`\ .. literalinclude:: ../../dockers/rathole/client/Dockerfile .. dropdown:: \ :code:`docker-compose.yml`\ .. literalinclude:: ../../dockers/rathole/client/docker-compose.yml .. dropdown:: \ :code:`client.toml`\ .. literalinclude:: ../../dockers/rathole/client/client.toml rathole server ^^^^^^^^^^^^^^ .. code-block:: bash curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/rathole/server/Dockerfile curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/rathole/server/docker-compose.yml curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/rathole/server/server.toml .. dropdown:: \ :code:`Dockerfile`\ .. literalinclude:: ../../dockers/rathole/server/Dockerfile .. dropdown:: \ :code:`docker-compose.yml`\ .. literalinclude:: ../../dockers/rathole/server/docker-compose.yml .. dropdown:: \ :code:`server.toml`\ .. literalinclude:: ../../dockers/rathole/server/server.toml Adhomeguard ----------- 这个服务主要是用来改进dns服务。 可以去广告,并且通过多个dns的整合和缓存,加速。 一些有用的链接: * \ `Cats-Team/AdRules `_ .. code-block:: bash curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/adguradhome/docker-compose.yml curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/adguradhome/AdGuardHome.yaml .. dropdown:: \ :code:`docker-compose.yml`\ .. literalinclude:: ../../dockers/adguradhome/docker-compose.yml 配置文件, 这个可以帮助快速设置一些常见的过滤器, 放在 \ :code:`docker-compose.yml`\对应的文件夹下面的 \ :code:`conf`\ 目录下: .. dropdown:: \ :code:`AdGuardHome.yaml`\ .. literalinclude:: ../../dockers/adguradhome/AdGuardHome.yaml Aria filebrowser(TODO) -------------------------------- 这个是设置的aria-pro和filebrowser .. dropdown:: \ :code:`docker-compose.yml`\ .. literalinclude:: ../../dockers/aria_filebrowser/docker-compose.yml traefik ------- 这个服务可以很好配合docker完成不同域名的转发工作,从而替代nginx。 .. code-block:: bash curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/traefik/docker-compose.yml .. dropdown:: \ :code:`docker-compose.yml`\ .. literalinclude:: ../../dockers/traefik/docker-compose.yml 为了配合 authentik 的使用,还需要添加如下 中间件 \ :code:`tls.yml`\ 和 \ :code:`route.yml`\ .. code-block:: bash mkdir -p traefik_conf curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/traefik/traefik_conf/tls.yml curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/traefik/traefik_conf/route.yml .. dropdown:: \ :code:`route.yml`\ .. literalinclude:: ../../dockers/traefik/traefik_conf/tls.yml .. literalinclude:: ../../dockers/traefik/traefik_conf/route.yml prom+grafana (TODO) ------------------------ 可视化监控, .. code-block:: bash curl -OL https://raw.githubusercontent.com/hotchilipowder/my_config/main/dockers/prom-grafana/docker-compose.yml .. dropdown:: \ :code:`docker-compose.yml`\ .. literalinclude:: ../../dockers/prom-grafana/docker-compose.yml Build My Docker Dev ===================== 由于经常要开启一些data science的项目,因此编写了一套自己的 cookie-cutter的模板。请参见: :logo-github: