かべぎわブログ

ブログです

2018-01-01から1年間の記事一覧

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

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

複数のEC2インスタンスに一気にIAMロールをつけるシェルスクリプト

概要 複数のEC2インスタンスに一気にIAMロールを付ける必要があって、マネコンでポチポチするのめんどくさいなーと思ったのでつくった。 スクリプト つかいかた ./role_fukusuu.sh IAMロール名 インスタンスID インスタンスID... $ ./role_fukusuu.sh wawawa…

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コマンドで停止し…

シェルスクリプトで大文字小文字を置換する

概要 シェルスクリプト上で大文字と小文字置換してみたいと思います。 コマンド例 だいたいこんなかんじ。 大文字から小文字へ置換 $ echo "WAWAWA" | tr '[:upper:]' '[:lower:]' wawawa これでもできる。 $ echo "WAWAWA" | tr '[A-Z]' '[a-z]' wawawa 小…

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

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

ソートできないファイル同士を結合するシェルスクリプト

概要 なぜかはわからないけれどソートができないテキストファイル2つがあって、なぜかはわからないけれどそれを共通のキーをもとに結合したいときがあって、前述の通りなぜかはわからないけれどソートができないのでjoinコマンドが使えないのでシェルスクリ…

AnsibleのshellモジュールでPATHがとおってないと怒られるときの対処法

概要 Ansibleのshellモジュールでターゲットノードでコマンドを実行しようとしたところ、「コマンドが見つかりません」というエラーが返ってきてしまいました。 のでそれの対処法です。 こんなかんじのplaybookがエラーになった。 - hosts: target tasks: - …

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 "…

Echo Spot を開けるだけ

Echo Spot (エコースポット) - スマートスピーカー with Alexa、ホワイト出版社/メーカー: Amazon発売日: 2018/07/26メディア: エレクトロニクスこの商品を含むブログを見る

jsonの配列をシェルスクリプトとjqでループさせて取得する

概要 AWSCLIで取得した結果が配列というかJSONというかなんというかみたいな形式で非常にシェルスクリプト上でさわりにくいのでjqコマンドををつかって取得してみます。 前提 たとえばAWSCLIを実行してこんなかんじでインスタンスIDとインスタンスタイプを取…

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

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

awkのフィールド指定のところを変数で指定する

概要 awk '{print $1}'とかやる$1の部分を変数で指定したい。 やりかた awk -vのあとに変数=値で指定してあげる。 $ echo "AAA BBB CCC" | awk -v "wawawa=3" '{print $wawawa}' CCC シェルスクリプト内で宣言した変数を入れることも可能。 #!/bin/bash henn…

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コンテナを起動しています。 ちなみにオプションの意味はこんなか…