如果有看前一篇文章,也就是在WSL中安裝原生的Docker環境,可能在電腦重新啟動之後輸入wsl進入Linux子系統時,會發現docker怎麼好像又不能使用了?
其實這只是因為電腦重新啟動後,WSL環境也是重新啟動,所有額外安裝的程式與服務都需要手動重新啟動它們,所以這時候只要再輸入sudo service docker start
,再執行docker的指令就可以正常工作了。
不過每次WSL重新啟動之後都需要輸入指令讓docker服務啟動,說實在的有一點麻煩,因為通常用到WSL的時候就是要在裡面跑docker container,所以如果在輸入wsl進入Linux子系統環境的時候就能夠自動將服務啟動的話,那不是方便很多嗎?
這一篇文章就是說明該如何在Linux子系統設定自動啟動docker服務,這個概念其實就和Windows作業系統啟動的時候要執行什麼事情所做的設定是相同的概念,所以也不限於使用在WSL的環境喔!
自動啟動Docker服務
首先,進入WSL之後,輸入cd ~
切換到使用者的根目錄,接著再輸入sudo nano .bashrc
,透過nano編輯.bashrc這個檔案。
接著會看到裡面有一堆的設定值,直接在最上面第一行將啟動docker的指令sudo service docker start
輸入進去,然後按下鍵盤的ctrl+x離開,詢問要不要儲存檔案的時候按y,接著再直接按enter就行了。
到這個動作其實已經可以讓WSL在啟動的時候自動將docker服務啟動起來,不過這樣子只能算是完成了一半,因為在WSL啟動的時候仍然需要一個麻煩的動作:輸入密碼。
省略輸入密碼設定
其實輸入密碼的這個動作也是可以設定成不需要輸入,同樣是透過編輯設定就行。
進入WSL之後輸入sudo visudo
,進入設定編輯畫面,這次我們選擇在最下面一行輸入設定值:
<em>帳號</em> ALL=(ALL) NOPASSWD: ALL
輸入完之後,同樣按下鍵盤的ctrl+x離開,詢問要不要儲存檔案的時候按y,接著再直接按enter離開就行了。
完成之後同樣離開WSL環境,並且將WSL終止(wsl -t <em>WSL子系統Distro名稱</em>
),重新輸入wsl進入Linux子系統,可以看到下圖與上面的差異,需要輸入密碼的步驟已經省略掉了。