LoginSignup
0
0

More than 3 years have passed since last update.

【Docker】コンテナ作成までの操作#2

Posted at

本投稿の目的

・Dockerの操作についての議事録です。


学習に使った教材

Udemyの "米国AI開発者がゼロから教えるDocker講座" を教材として使用しました。


○container作成 (2.image作成する場合)

○build contextの作成

mkdir <build context名>

・build context とは,docker image を作成する際のimage元となるフォルダ

○build contextへ移動

cd <build context名>

・カレントディレクトリが build context の状態にする

○Dockerfileの作成,編集

touch Dockerfile

・build context 内にDockerfileというテキストファイルを作成 (これは naming convention *命名規則)
・この中に書いたコマンド実行されてimageが作成される (編集方法は別途記事を書くので割愛)

○imageの作成

docker build .

・ "." はカレントディレクトリを意味する (カレントディレクトリうちのDockerfileを使てimage作成が実行される)
・名前とTAGを指定してないので "none" というimageが作成される
・dangling image とよばれる

【Dockerfileを明示的に指定する場合】

docker build -f docker -f <Dockerfileのpath/名前>

・-f はDockerfileを明示的に指定するためのオプション
・ の部分には適切なpathとファイル名を記述する

【名前とTAGを指定して作成する場合】

docker build -t <image名>:<TAG> .

・-t は名前を付けてimageを作成するためのオプション
・ の部分は,通常はlatestと書く

○containerの作成

docker run <image名>

・作成したいcontainerの素となるimage名を指定してrunを実行
・#1で説明したとおり,これではデフォルトコマンドを実行後にexitしてcontainerから抜けてしまう

【run後のデフォルトコマンドを上書きして実行】

docker run <image名> <上書きコマンド>

・デフォルトコマンドの代わりに上書きコマンドを実行
・これでは上書きコマンドを実行後にexitしてcontainerから抜けてしまう
・デフォルトコマンドはrun実行後に docker ps -a のCommandから確認可能
・上書きするとここに指定したCommandが表示される

【run後にcontainerに残るための記述】

docker run -it <image名> bash

・これでcontainer起動後にexitせずにcontainerの中にとどまる
・そのため,ターミナルの実行前の記述が以下のように変化する

root@xxxxxxxxxxx:/#

・これはContainer上のOSにbashを通してアクセスする状態になったことを意味する
・デフォルトではコンテナ起動後はrootユーザーになる
・Continaerからexitで抜ける処理は実行されていない
・container から抜けるときは以下を実行するとHostのターミナル状態に戻る

exit

○-itとは?

docker run -it <image名> bash

・run後にcontainerに残るための記述に使用することが多いコマンド
・-iと-tを重ねて-it
・それぞれには以下の意味がある

○-i
・インプット可能
・HOSTからコンテナへのSTDIN(入力ch)を繋ぐコマンド
・繋がないとHostにしか入力が伝わらないため,コンテナへ指示が届かない

【chとは】
・ "STDIN" "STDOUT" "STDERR" の3つがある
・STDIN : キーボードの入力をプログラムへ繋ぐためのch
・STDOUT,STDERR : プログラム結果をモニタへ出力するためのch

○-t
・ターミナル表示が綺麗になる (pretyにする)
・コマンド保管も使用可能になる


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0