Open5

WindowsでDocker Desktopを使う

ItacchoItaccho

Docker Desktopをインストールしただけでは動作しない
→ Windows側でWSLをインストールして、Microsoft StoreでUbuntuをインストール、動作するようになった

[ここだけ愚痴]
てか、検索上位に上がる記事を書いている人たち、言いたい、「情報が足りない!」
どのディレクトリでどのユーザで何をするか、詳しく書かないと、あんた達がイメージしている作業ができないよ!

ItacchoItaccho

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のほうは商用でも非推奨のコマンド。

ItacchoItaccho

docker volume作成

test-volumeを作成

docker volume create test-volume

作成したvolumeを確認

docker volume ls

確認観点:test-volumeが作成されたこと

ItacchoItaccho

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