沉冰浮水

沉冰浮水

做最终到的事,成为最终成为的人!
github
bilibili
mastodon
zhihu
douban

「折腾」莫名其妙得解决了 wsl2 内 Docker 的自启动

最終的に解決できず、悩んでいました

一、“解決” 方案#

前の記事でおすすめしたのは:「「折腾」VSCode + wsl2 + Docker 探究_电脑网络_沉冰浮水

インターネット上で最も一般的なコマンドは効果がないようですので、常に入力法のショートカットでsudo service docker startを実行していますが、やはり面倒です;

sudo systemctl enable docker
# Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
# Executing: /lib/systemd/systemd-sysv-install enable docker

いくつかの解決策は試す気にならず、英語の記事にたどり着きました:

How to automatically start the Docker daemon on WSL2 – NillsF blog
https://blog.nillsf.com/index.php/2020/06/29/how-to-automatically-start-the-docker-daemon-on-wsl2/

~ この解決策には zsh のインストールが必要です。インストール方法は第 2 節を参照してください。~

・まず、sudo を実行する際にパスワードを入力しないようにユーザーを設定する必要があります。私はすでに設定していますが、なぜ効果があるのか理解していないので、メモを取りませんでした;

· ~/.bashrcに以下の内容を書き込みます:

echo '# Start Docker daemon automatically when logging in if not running.' >> ~/.bashrc
echo 'RUNNING=`ps aux | grep dockerd | grep -v grep`' >> ~/.bashrc
echo 'if [ -z "$RUNNING" ]; then' >> ~/.bashrc
echo '    sudo dockerd > /dev/null 2>&1 &' >> ~/.bashrc
echo '    disown' >> ~/.bashrc
echo 'fi' >> ~/.bashrc

source ~/.bashrc

・次のコマンドを実行すると、docker コマンドを sudo なしで実行できるようになりますか?:

sudo usermod -a -G docker $USER
# -G グループを変更する
# -a ユーザーを追加するためのオプション。-Gオプションと一緒に使用し、ユーザーをグループに追加することを示す

二、zsh のインストール#

実際には Docker の自動起動を解決するだけなら zsh を変更する必要はありません。私の英語力が足りず、元の記事の情報を見落としました;

Oh-My-Zsh の配置与使用 - 再见理想_ - 博客园
https://www.cnblogs.com/monsterdev/p/11166720.html

sudo apt update
sudo apt install git zsh -y

# Oh My Zshのインストール
sh -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ohmyzsh/ohmyzsh@master/tools/install.sh)"

# zshに切り替える
chsh -s /bin/zsh

# バージョンの確認
zsh --version
# zsh 5.4.2 (x86_64-ubuntu-linux-gnu)

# 現在のシェルを確認する
# 切り替えが成功していない場合は、ターミナルまたはVSCodeを閉じて再度確認してください
echo $SHELL
# /bin/zsh

# sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。