0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

docker ~tips~

Last updated at Posted at 2020-12-02

#dockerで学んだこと

docker run <image>// ドッカーでコンテナを起動(指定したコンテナが作られていなければ作って起動する
docker create <image> // コンテナを作る(起動はされない)
docker start <image> //作ったコンテナを起動する
docker ps // ドッカーで起動中のコンテナを確認できる。
docker ps -a // 起動していないコンテナも含めて確認できる。
docker images // ホストにあるimagesを確認できる
docker images -f dangling=true //dangling imageのみを確認できる。
docker build <directory> //dockerfileのあるディレクトリ内で使用。対象ディレクトリ内のdockerfileからdockerimageを作成する。
docker build -t <name> <directory>
docker run -it <image> bash // コンテナに入るためのおまじない
exit // ドッカーから退出
docker restart // exited状態のコンテナを起動する
docker exec -it<container> bash //コンテナに入る
docker commit<container> <image> // コンテナから新たに作ったコンテナにimage名をつける
docker tag<source(古いimage名)><target(新しいimage名)> 
docker push<image> // 他の人も使えるようになる
docker rmi<image> //不要なimageを削除出来る
docker rm コンテナ名 //不要なコンテナを削除(アクティブなものは消せない)
docker stop コンテナ名 //コンテナを止める
docker system prune // コンテナ全削除(アクティブな物は消せない)

dockerを止める際
スクリーンショット 2020-12-04 14.58.21.png
スクリーンショット 2020-12-04 14.59.03.png
STATUSがUPになっているものが複数あった場合は

docker stop 84aafb23ffd4 f4a4902cbfd0 84aafb23ffd4

上記のようにスペース区切りでIDを指定すると指定したIDのコンテナが止まる(Exitedになる)
このスペース区切りで指定して複数に実行する方法は削除の時も同様に使用可能

docker rm 84aafb23ffd4 f4a4902cbfd0 84aafb23ffd4

##コンテナを名前をつけて作る
参考画像
スクリーンショット 2020-12-04 15.20.08.png

通常コンテナを作る時は

docker run コンテナ名(ここには既にあるコンテナから引っ張ってきたいコンテナの名前を入れる)

この方法だと作成されたコンテナの名前はランダムになる

 docker run --name sample ubuntu
//上記のsampleが自分でつけるコンテナの名前 ubuntuは既に誰かかが作成済みの持ってきたいコンテナの名前 

上記のように--nameとコンテナ名を指定することでコンテナ名をつけられる。

※同じ名前のコンテナを作ることは出来ないので注意する※

##docker run のオプション

detached mode
docker run -d <image>
コンテナ起動後にdetachする(バックグラウンドで動かす「STATUSがUpになった状態でrun出来る」)

(short-term)foreground mode
docker run --rm <image>
コンテナをExit後に削除する(一回きりのコンテナ)
docker run hello-world
のようにコンテナを一回起動して内容を確認→もう使わない
といった時に便利

##dockerfileについて

docker hubでみたいdockerfileのあるdocker imageを検索(今回はubuntu)
スクリーンショット 2020-12-04 16.32.59.png

対象imageを選択
スクリーンショット 2020-12-04 16.29.23.png
スクリーンショット 2020-12-04 16.35.52.png

ページのにSupported tags~ Dockerfile linksがある

そこの見たいバージョンを選択(今回は18.04にする)
スクリーンショット 2020-12-04 16.29.47.png
そうするとdockerfileの記載のあるGithubへ移動出来る。
ここに記載されている今回であればFROM scratchからの記載内容がdockerfile
ここにその対象imageについての記述をしていくことでdockerfileを作っていく

##dockerfileの作り方
スクリーンショット 2020-12-08 22.41.09.png
上記図について以下で詳細を説明していく


dockerfileを作る時はファイル名は命名規則により**「Dockerfile」**とする
INSTRUCTION argumentsの形で書いていく
(例:「FROM ubuntu:latest」や「RUN touch test」)
基本最初はFROMから書いていくルール

###fileの具体的な作り方(今回はデスクトップに作ることを想定)
スクリーンショット 2020-12-04 16.46.22.png

ターミナルを開き

PC ~ % cd desktop// デスクトップへ移動
PC desktop % mkdir docker// ドッカーフォルダ作成
PC desktop % cd docker // ドッカーフォルダへ移動
PC docker % code Dockerfile // Dockerfileというファイルを作成しvscodeを起動
//(codeはvscodeを開くターミナルのコマンド)この時点ではDockerのファイルは開いているだけで保存されていないので注意。vscodeのエディタ上でセーブしましょう(⌘+s)

以下の様にdockerfileを記述していく


 #ubuntuは元となるdocker image(:latestと書くことは必須ではない)
FROM ubuntu:latest  
 #ubuntu imageに対しtestファイルを作成している
RUN touch test

##dockerfileをbuildする(buildによってdockerfileからdocerimageが作成される)

dockerfileのあるディレクトリへ移動する(仮にdockerfileがあるディレクトリを「Docker」とする)
cd Dockerを使用し対象ディレクトリへ移動。
対象のdockerfileのあるディレクトリへ移動したら

docker build .
//ここで使用している「.」はカレントディレクトリを指している(この部分に書くのはbuildをするディレクトリ)。
//現在いるディレクトリのdockerfileをbuildするという指定をする役割をしている
//基本はカレントディレクトリにbuildするので「.」で覚えればOK

これでbuild完了。

スクリーンショット 2020-12-08 21.49.58.png

docker build後にdocker imagesコマンドをすると
スクリーンショット 2020-12-08 21.59.06.png
一番上に<none>と書かれたdockerimageが作成されたことが確認できる。
docker build .をした際に名前をつけないと名前が<none>となる。
この名前のないimageをdangling imageと呼ぶ。
docker images -f dangling=trueとすることでdocker imagesの中からdangling imageのみを検索できる

名前をつける際は

docker build -t new-ubuntu:latest .
//new-ubuntu部分が名前になる。tag名:latestは指定しなくてもbuile可能。「.」は上述と同様可憐とディレクトリを指定。

###docker buildによってdockerfileの内容が反映されているか確認
スクリーンショット 2020-12-08 22.26.17.png

docker run -it new-ubuntu bash
ls

上記コマンドでコンテナに入り確認するとtestというファイルが作成されていることが確認できる。
この「test」がdockerfileにてRUN touch testで記述した内容から生成されたもの。

続く

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?