Docker command can't understand complex and difficult to use? Recommend you to use docker-compose 2 months ago

你可能会说,docker都搞不懂玩什么docker,但是现实是在这个云服务器99元/年的情况下,任何人都可能用上,不懂不代表用不上。

对于新手来说docker有一定的门槛,虽然大部分的镜像发布者都会告知使用方法,但是终究是有些地方需要修改,比如端口和挂载。

以vaultwarden为例,百度一搜第一个结果告诉我,应该这样做

然后执行以下命令就可以了

docker run -d --name vaultwarden --restart=always -e WEBSOCKET_ENABLED=true -e SIGNUPS_ALLOWED=false -e DOMAIN=https://vault.moutai.com.cn -e ADMIN_TOKEN=eMEt*W4ay7 -e DATABASE_URL=mysql://vault:[email protected]:3306/vault -v /data/bitwarden/:/data/ -p 8080:80 -p 3012:3012 vaultwarden/server:latest

在这么长一串命令下,但凡是个新手肯定是一脸懵,想要搞清楚自己需要修改哪里非常的困难,当然教程里面给了解释,依然有点复杂

以下是启动命令中使用的选项和参数的解释:

  • -d:以守护进程模式运行容器。
  • --name vaultwarden:指定容器的名称为"vaultwarden";
  • --restart=always:设置容器在重启时自动启动;
  • -e WEBSOCKET_ENABLED=true:启用WebSocket支持;
  • -e SIGNUPS_ALLOWED=false:禁止用户自行注册新账户;
  • -e DOMAIN=https://vault.moutai.com.cn:设置Vaultwarden的域名;
  • -e ADMIN_TOKEN=eMEt*W4ay7:设置管理员令牌(密码);
  • -e DATABASE_URL=mysql://vault:[email protected]:3306/vault:指定MySQL数据库的连接URL;
  • -v /data/bitwarden/:/data/:将宿主机上的/data/bitwarden/目录挂载到容器内的/data/目录,用于持久化数据;
  • -p 8080:80 -p 3012:3012:将宿主机的8080端口映射到容器的80端口,以及3012端口映射到容器的3012端口;
  • vaultwarden/server:latest:运行最新版本的Vaultwarden服务器镜像;

这就不得不说到docker-compose了,真的是简洁明了,编辑好了以后只需要一条命令docker-compose up就可以运行了

在服务器上创建一个docker-compose.yml文件,写入如下内容

version: "3.8"
services:
    vaultwarden:
        container_name: vaultwarden #指定容器的名称为"vaultwarden"
        image: vaultwarden/server:latest #运行最新版本的Vaultwarden服务器镜像
        environment:
            - WEBSOCKET_ENABLED=true #启用WebSocket支持
            - SIGNUPS_ALLOWED=false #禁止用户自行注册新账户
            - DOMAIN=https://vault.moutai.com.cn #设置Vaultwarden的域名
            - ADMIN_TOKEN=eMEt*W4ay7 #设置管理员令牌(密码)
            - DATABASE_URL=mysql://vault:[email protected]:3306/vault #指定MySQL数据库的连接URL
        ports:
            - 8080:80 #将宿主机的8080端口映射到容器的80端口
            - 3012:3012 #3012端口映射到容器的3012端口
        restart: always #设置容器在重启时自动启动
        volumes:
            - /data/bitwarden/:/data/ #将宿主机上的/data/bitwarden/目录挂载到容器内的/data/目录,用于持久化数据

然后

docker-compose up
#没有报错的情况下,Ctrl+c然后加上-d参数
docker-compose up -d

-d表示以守护进程的方式运行容器,即在后台运行,不会阻塞终端。

为什么先不加-d,因为运行可能会出错,不加-d会输出日志,另外有些容器的管理员密码可能会在初次运行的日志里面

参考资料:docker部署Vaultwarden密码共享管理系统-CSDN博客

©2024 Acyc's Blog. All rights reserved.