Alain's Blog

  1. 首页
  2. 软件工具
  3. 正文

Docker部署Code-Server,并使用特殊符号密码

2024年2月11日 2463点热度 51人点赞 0条评论

code server

Docker部署Code-Server(VScode),并使用特殊符号(字符)密码。本文主要目的还是记录如何使用特殊符号密码,比如: !@#$%^&*()123

转载请注明出处,本文仅用于学习交流,不对之处,恳请指正 ,部分图片摘取网络,如有侵权请联系

前言

实际上网络上部署Code-Server的教程很多,但是密码使用特殊符号的介绍就很少,所以本文主要目的还是记录如何使用特殊符号密码,比如使用: !@#$%^&*()123

部署

官方教程说明很清楚: https://coder.com/docs/code-server/latest/install#docker

# This will start a code-server container and expose it at http://127.0.0.1:8080.
# It will also mount your current directory into the container as `/home/coder/project`
# and forward your UID/GID so that all file system operations occur as your user outside
# the container.
#
# Your $HOME/.config is mounted at $HOME/.config within the container to ensure you can
# easily access/modify your code-server config in $HOME/.config/code-server/config.json
# outside the container.
mkdir -p ~/.config
docker run -it --name code-server -p 127.0.0.1:8080:8080 \
  -v "$HOME/.local:/home/coder/.local" \
  -v "$HOME/.config:/home/coder/.config" \
  -v "$PWD:/home/coder/project" \
  -u "$(id -u):$(id -g)" \
  -e "DOCKER_USER=$USER" \
  codercom/code-server:latest

我的一些思考

因为我自己比较喜欢相对统一的方法去管理文件,所以我仍然选择使用volume来存放不同容器的不同文件

  1. 使用alpine创建一个volume,并创建相应目录以及配置文件,同时将密码写入到配置文件中,请注意我这里使用的是hashed-password=,它代表使用哈希密码的意思,如果你想要存放铭文密码,你可以使用password=。(如何生成hashed password,请跳转下一节)

    # 创建磁盘
    docker run --rm -it \
        -v codeserver_data:/data \
        alpine \
        sh -c "mkdir -p /data/.config/code-server \
            && mkdir -p /data/.local \
            && mkdir -p /data/project \
            && echo 'bind-addr: 127.0.0.1:8080
    auth: password
    hashed-password: thisismypassword
    cert: false' > /data/.config/code-server/config.yaml \
            && chown -R $(id -u):$(id -g) /data/ \
            && cd /data/ && ls -al"
  2. 创建Code-Server容器,请注意-v codeserver_data:/coder_volume_symlink的作用仅仅是为了将codeserver_data卷给占用,以免docker volume prune的错误触发,实际使用中,并没有用到。

    docker run -d --name code-server -p 8080:8080 \
        --restart=on-failure \
        -u "$(id -u):$(id -g)" \
        -v codeserver_data:/coder_volume_symlink \
        -v "/var/lib/docker/volumes/codeserver_data/_data/.local:/home/coder/.local" \
        -v "/var/lib/docker/volumes/codeserver_data/_data/.config:/home/coder/.config" \
        -v "/var/lib/docker/volumes/codeserver_data/_data/project:/home/coder/project" \
        -e "DOCKER_USER=$USER" \
        -e TZ=Asia/Shanghai \
        codercom/code-server:latest

使用hashed密码(可用于使用特殊符号)

  1. 如何生成哈希密码

    Can I store my password hashed?
    https://github.com/coder/code-server/blob/v3.8.0/doc/FAQ.md#can-i-store-my-password-hashed

    官方教程中使用的命令行是:

    echo "!@#thisismypassword" | sha256sum | cut -d' ' -f1

    但是我使用该方法后,并无法输出正确的哈希密码,最终我使用了以下命令,并成功实践,你可以自行尝试。

    echo -n "!@#thisismypassword" | sha256sum | cut -d' ' -f1
  2. 使用哈希密码

    因为默认使用的是明文密码的方式,即配置文件中使用的参数是password

    bind-addr: 127.0.0.1:8080 # 绑定的端口号,因为使用的是docker,我们无需修改
    auth: password # 使用密码的方法进行鉴权
    password: thisismypassword # 使用明文秘密啊
    cert: false # 后续我们可以使用nginx进行反向代理

    所以我们需要将参数修改为hashed-password

    ...
    # password: thisismypassword # 删掉
    hashed-password: # 生成的密码
    ...
  3. 使用

    # http://{yourip}:{your-port}
    # 如果是本机则使用localhost即可
    http://localhost:8080

    code server

参考

https://coder.com/
https://github.com/coder/code-server/issues/2225
https://github.com/coder/code-server/blob/v3.8.0/doc/FAQ.md

标签: Docker
最后更新:2024年2月11日

Alain

看了我的文,就是我的人,点个赞再走成不成

点赞
< 上一篇

文章评论

取消回复

文章目录
  • 前言
  • 部署
    • 我的一些思考
  • 使用hashed密码(可用于使用特殊符号)
  • 参考

COPYRIGHT © 2022 Alain's Blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang