かべぎわブログ

技術的なことについてかけたらいいな…

Docker

DockerでVOLUMEと--volumes-fromをつかって別のコンテナの出力するログを集約してみる

概要 DockerfileのVOLUME命令をつかって別のいろいろなコンテナが出力するログファイル的なものを集約してみたいと思います。 手順 手順はこんなかんじ。 ログ格納用コンテナとログを出力するコンテナを作成してみます。 ログ格納用コンテナの準備 ログ用の…

DockerfileのADDでローカルのtarアーカイブをコンテナ内に展開する

概要 DockerfileでつかえるADD命令をつかってローカルにあるtarファイルをコンテナ内に展開してみたいと思います。 事前準備 こんなかんじのDockerfileを用意する。 FROM centos ADD test_archive.tar /root/ 用意したアーカイブはこんなかんじ。 ADDで指定…

DockerfileのCOPYでローカルのファイルをDockerイメージにコピーする

概要 DockerfileでCOPY命令をつかってローカルにおいてあるファイルをDockerイメージのファイルシステムのなかにコピーしてみたいと思います。 事前準備 今回はローカルにwawawa.txtというテキストファイルを作成しておいて、それをDockerイメージの/root/配…

DockerfileのONBUILDの動きをみてみる

概要 Dockerfileで記載できるONBUILD命令がいまいちよくわからなかったので実際に動かしてやってみようと思います。 そもそもONBUILDとは 以下Dockerの公式ドキュメントより(Google翻訳) このONBUILD命令は、イメージが別のビルドのベースとして使用されると…

Dockerコンテナ実行時にコマンドの引数を任意に指定する

概要 コンテナを実行したときにDockerfile内にかかれているコマンドの引数を指定して実行させて見たいと思います。 準備 ENTRYPOINTとCMDを利用します。 たとえば、以下のようなDockerfileがあったとします。 FROM centos ENTRYPOINT [ "echo" ] CMD [ "nani…

DockerfileのCMDとENTRYPOINTの違い 使い分け

概要 Dockerfileを書いていて、CMDとENTRYPOINTという命令があって、どっちもコマンドを実行できて、これなんやねんと思ったので雑まとめ。 CMD 単純にコマンドを実行できる。 ただし、docker run時にコマンドを指定すると処理がうわがかれる。 たとえば以下…

DockerfileのRUNとCMDの違い 使い分け

概要 DockerfileでRUNとCMDという命令があって、どちらもコマンドを実行できるらしく、なんでこれふたつあるんだろうなーと思ったので雑まとめ。 RUN docker buildのときに実行される。 なのでyum installとかapt-getとかはこの処理で記載するとよい。 CMD d…

Dockerfileのなかで変数を利用する

概要 Dockerfileを書いていて、あーここあとで変更入りそうだしかんたんに変えられるようにしたいなー何回も書くのめんどくさいなー変数つかいたいなーと思ったので調べてみた。 ARGをつかえばいい Dockerfile内でARGというところで変数を定義してあげるとい…

任意の名前のDockerfileでdocker buildする

概要 docker buildするときに利用するDockerfileはそのままファイル名でDockerfileとなっていないと読み込まれませんが、これだとファイル名で管理ができません。 docker buildするときにオプションとして-fをわたしてあげると任意の名前のDockerfileを読み…

docker buildでDockerfileからイメージを作成してみる

概要 docker buildコマンドを利用してDockerファイルからイメージを作成してみたいと思います。 今回はベースイメージを指定しただけの超シンプルなやつでやってみます。 Dockerファイル DockerファイルにはもととなるイメージをFROMで記載と、MAINTAINERで…

Dockerコンテナを一発ですべて停止する

概要 Dockerコンテナがたまりにたまっていたのでそれらを一括停止してみる。 コマンド例 以下コマンドを実行することでコンテナをすべて停止することができます。 $ sudo docker stop $(sudo docker ps -aq) ちょっとした説明 docker ps -aqコマンドで停止し…

Dockerコンテナをexportして別のサーバでimportして動作させる

Dockerコンテナを一旦exportして別のサーバ上でimportして動作させて見たいと思います。 環境が変わってもDockerイメージさえあれば同じ環境がすぐにできあがるよ。 みたいなことを確認してみたいと思います。 docker commit でイメージを作成する docker ex…

docker diffでコンテナ内の変更を確認する

概要 docker diffコマンドをつかってコンテナ起動からのコンテナ内の変更を確認してみます。 コマンド例 たとえばこんなかんじでコンテナ内にいろいろファイルをつくってみるとする。 $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAM…

docker cpでコンテナ内とホスト間でファイルをコピーする

概要 docker cpコマンドを利用してコンテナとホスト間でファイルをコピーしてみたいと思います。 コマンド例 たとえばこんなかんじのコンテナがあるとする。 $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5bc287372e97 centos "…

docker renameでコンテナの名前を変更する

概要 docker renameコマンドを利用して既存のDockerコンテナの名前を変更してみます。 コマンド例 たとえば以下のようなコンテナがあったとする。 $ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6a4c710d54ac centos "/bin/ba…

docker attachとdocker execで現在稼働中のコンテナに接続する

概要 docker attachコマンドを利用して現在稼働中のコンテナに接続してみたいと思います。 docker attach たとえば以下のようにping localhostを実行し続けているコマンドがあるとする。 $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS …

docker ps -f でよくつかうフィルタリングまとめ【随時更新】

コンテナ名でフィルタリングする コンテナIDでフィルタリングする 終了ステータスが0のものをフィルタリングする ラベルでフィルタリングする ステータスでフィルタリングする 実行中(running)のものをフィルタリングする 終了済み(exited)のものをフィルタ…

docker run -e --env-file で環境変数を設定してコンテナを起動する

#概要 docker runコマンドでコンテナを起動する際に、環境変数を設定してコンテナを起動してみたいと思います。 コマンド例 2種類あります。 docker run -e docker runに-eオプションを指定して実行してあげます(-itは確認用でつけてます) $ sudo docker ru…

Dockerコンテナを一発ですべて削除する

概要 Dockerコンテナがたまりにたまっていたのでそれらを一括削除してみます。 コマンド例 以下コマンドを実行することでコンテナをすべて削除することができます。 $ sudo docker rm $(sudo docker ps -aq) ちょっとした説明 docker ps -aqコマンドで停止し…

docker run -v でホストとコンテナのディレクトリを共有する

概要 docker runコマンドに-vオプションをつけてホストとコンテナでディレクトリを共有してどちらからも参照できるようにしてみたいと思います。 コマンド例 docker run -vホストのPATH:コンテナのPATHでホストとコンテナでディレクトリを共有することができ…

docker run --cpu-shares --memoryでCPU/メモリのリソース利用を制限して起動させる

概要 docker runコマンドに--cpu-sharesと--memoryオプションを指定して、CPUとメモリのリソース利用を制限して起動してみたいと思います。 コマンド例 以下のようにすることでコンテナのリソースを制限して起動することができます。 $ sudo docker run --cp…

docker run --hostnameでコンテナにホスト名を設定する

概要 docker runコマンドの--hostnameオプションでDockerコンテナにホスト名を設定してみたいと思います。 コマンド例 --hostname=ホスト名でコンテナにホスト名を設定することができます。 今回はそれにプラスして確認用として-itオプションでコンテナの中…

docker run --restart=always でコンテナを再起動させる

概要 docker runの--restart=alwaysオプションを利用して、コマンド終了後にコンテナを再起動させてみたいと思います。 コマンド例 以下のように--restart=alwaysオプションを利用してDockerコンテナを起動しています。 ちなみにオプションの意味はこんなか…

docker run -d でコンテナをバックグランドで実行させる

概要 docker run -dでDockerコンテナをバックグランドで実行してみたいと思います。 コマンド例 -dオプションをつけてdocker runをしています。 実行するコマンドは裏で動き続けるようにyesコマンドを実行させています。 $ sudo docker run -d centos yes 65…

docker run -itでDockerコンテナの中にはいる

概要 docker runコマンドの引数に/bin/bashを渡してbashプロンプトを起動して、コンテナの中に入ってみたいと思います。 コマンド例 以下のような感じでコンテナを起動します。 オプションとして-itを使用しています。 -iはコンテナの標準入力を開くオプショ…

docker pushでdenied: requested access to the resource is deniedとなったときの解決法

概要 docker pushしようとおもったら以下のようなエラーがでてきました。 $ sudo docker push test The push refers to repository [docker.io/library/test] bcc97fbfc9e1: Preparing denied: requested access to the resource is denied なんやこれはと思…

docker loginとpushでDocker Hubにイメージをアップロードする

概要 Docker Hubにログインしてイメージをアップロードするのを、コマンドだけでやってみたいと思います。 手順 docker loginとdocker pushコマンドを利用します。 Docker Hubへログインする docker loginコマンドを利用してDocker Hubへログインします。 コ…

Dockerイメージが削除できないときはまずコンテナが削除されているかどうか確認する

概要 docker rmiコマンドでDockerイメージを削除しようと思ったところ以下のようなメッセージが出てきました。 $ sudo docker rmi centos Error response from daemon: conflict: unable to remove repository reference "centos" (must force) - container …

docker rmi で複数イメージを削除する

概要 docker rmiコマンドを利用して複数のDockerイメージを削除してみたいと思います。 イメージ名をスペース区切りで削除する 削除したいDockerイメージ名をスペース区切りで指定してあげます。 今回はdebianとubuntuのイメージを削除してみたいと思います…

docker rmi でDockerイメージを削除する

概要 docker rmiコマンドでDockerイメージを削除してみたいと思います。 削除してみる docker rmi [オプション] イメージ名でDockerイメージを削除することができます。 たとえばイメージが以下のような感じだとする $ sudo docker images REPOSITORY TAG IM…