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来存放不同容器的不同文件
-
使用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"
-
创建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密码(可用于使用特殊符号)
-
如何生成哈希密码
官方教程中使用的命令行是:
echo "!@#thisismypassword" | sha256sum | cut -d' ' -f1
但是我使用该方法后,并无法输出正确的哈希密码,最终我使用了以下命令,并成功实践,你可以自行尝试。
echo -n "!@#thisismypassword" | sha256sum | cut -d' ' -f1
-
使用哈希密码
因为默认使用的是明文密码的方式,即配置文件中使用的参数是password
bind-addr: 127.0.0.1:8080 # 绑定的端口号,因为使用的是docker,我们无需修改 auth: password # 使用密码的方法进行鉴权 password: thisismypassword # 使用明文秘密啊 cert: false # 后续我们可以使用nginx进行反向代理
所以我们需要将参数修改为hashed-password
... # password: thisismypassword # 删掉 hashed-password: # 生成的密码 ...
-
使用
# http://{yourip}:{your-port} # 如果是本机则使用localhost即可 http://localhost:8080
参考
https://coder.com/
https://github.com/coder/code-server/issues/2225
https://github.com/coder/code-server/blob/v3.8.0/doc/FAQ.md
文章评论