WindowsでDocker Desktopを使う
Docker Desktopをインストールしただけでは動作しない
→ Windows側でWSLをインストールして、Microsoft StoreでUbuntuをインストール、動作するようになった
[ここだけ愚痴]
てか、検索上位に上がる記事を書いている人たち、言いたい、「情報が足りない!」
どのディレクトリでどのユーザで何をするか、詳しく書かないと、あんた達がイメージしている作業ができないよ!
dockerコンテナ作成とログイン
※以下の作業を実施する前に、WSLをWindowsにインストールしておくこと
コマンドプロンプトで実施
dockerイメージの確認
docker images
dockerからUbuntuリポジトリを取得して、コンテナubuntuを作成
docker pull ubuntu
dockerイメージの確認
docker images
確認観点:コンテナubuntuが作成されたこと
dockerコンテナの新規作成とログイン
docker run -it ubuntu
↓
コンテナのホストネームを確認
uname -n
コンテナからログアウト
Ctrl+q
↓1. コンテナから exitコマンドでログアウトしないようにする
alias exit='echo Do not use command `exit` for logout operation.'
alias | grep exit
exit
この設定でexitを実行すると、ログアウトしなくなる。Ctrl+Cを2,3回押してexitを中断する。
◇エイリアスを削除する場合
unalias exit
alias | grep exit
確認観点:表示されずプロンプトだけが返ってくれば、エイリアスの削除が成功。
↓2.exitしても自動停止しないようにログインする方法
# docker exec -it <Container NAME> <COMMAND>
実行例
docker exec -it beautiful_allen /bin/bash
docker ps -a | grep 1eba9be7ace7
※コマンドプロンプトでgrepしたい場合
docker ps -a | findstr 1eba9be7ace7
確認観点:本作業で作成したコンテナのホストネーム(ID - 1eba9be7ace7)が出力結果に表示されること
STATUSをUpにする
docker restart 1eba9be7ace7
Upになったかを確認する
docker ps
確認観点: <Container ID>がUpになっていること。
<Container ID>コンテナにログイン 二通り
docker attach 1eba9be7ace7
docker exec -it 1eba9be7ace7 /bin/bash
attachのほうは商用でも非推奨のコマンド。
docker volume作成
test-volumeを作成
docker volume create test-volume
作成したvolumeを確認
docker volume ls
確認観点:test-volume
が作成されたこと
Windowsコマンドプロンプトにて、dockerコンテナのユーザの追加
dockerコンテナ内でもユーザ追加できるのが面白いと思ったので、コンテナで遊んでみた!
useradd myuser
※本作業ではmyuser
を新規ユーザとして追加する。
作成したユーザの確認
cat /etc/passwd | grep myuser
パスワードを変更
passwd myuser
myuserディレクトリを作成
mkdir /home/myuser
myuserディレクトリを確認
ls -l /home/myuser
確認観点:total 0と出力されること
myuserユーザにログイン後、作成したホームディレクトリを確認
su - myuser
pwd
exitによる自動停止を防ぐ方法がもう一つあるが、それはcomposeを作成しないといけないらしい。
参照記事