Explaining “Best practices for writing Dockerfiles” Dockerfileを書くためのベストプラクティス【参考訳】v18.09 - Qiita https://qiita.com/zembutsu/items/a96b68277d699f79418d こちらをベースにした解説スライドです。Read less
はじめに あなたは Docker イメージを作る際に start.sh や startup.sh というファイルを作った経験はないだろうか。「Dockerfile の CMD だと 1 コマンドしか書けないから、シェルスクリプトで頑張る」というやつだ。例えば、環境変数を受け取って設定ファイルを動的に作ったり、メインプロセス起動前に何かしら初期化処理をするなど。そんなあなたに Entrykit というツールを紹介しよう。 Entrykit とは Entrykit は一言でいうと、コンテナ内のプロセス起動時に便利な軽量 init システムだ。Docker の起動コマンドに Entrykit を使うと、起動時にテンプレートファイルを元に設定ファイルをレンダリングしてくれたり、メインプロセスの前にコマンドを実行できたりする。 公式サイト - https://github.com/progrium/
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました Dockerは便利なシステムで一旦慣れてしまうと何でもコンテナとして管理したくなります。その結果、コンテナが乱立したり、イメージの管理も煩雑になっていきます。そうすると欲しくなるのが管理UIになります。 GUIでもいくつかありますが、手軽に運用できるのはターミナル上で動くものになるでしょう。今回はその一つ、dryを紹介します。 dryの使い方 一覧で現在動いているコンテナが確認できます。 アクティブでないものも含めた一覧です。 詳細を見たり、ログを確認する、コンテナを再起動や終了させるといった操作もできます。 ログです。 プロセスやメモリの状態。 dryはデフォルトのDockerコマンドで収集できる情報を扱いますが、それでも操作がキーボードで選択していくだけなのでとても楽になります
こんにちは、藤本です。 先日、Macbook のディスク使用量が 90% を超えていたので整理していました。原因は色々とあったのですが、Docker for Mac で 16 GB ぐらいを使っていたのでシュリンクする方法を調べてみました。 概要 Docker for Mac は Mac 上で Docker を利用するツールです。Docker for Mac に関しては下記エントリをご参照ください。 Public BetaになったDocker for Macを使ってみる Docker for Mac は Apple の Hypervisor フレームワーク上で動作します。Docker for Mac の仮想マシンが動いています。ディスクは QEMU のイメージファイルが作られ、Docker イメージや、Docker コンテナが増えていくにつれて仮想マシンのディスク使用量、つまりイメージファ
最近、Rails界隈でDocker使い始めました、という話を聞く機会が増えてきたので、自分が開発環境整備用に構築したDockerの設定をまとめておく。 ちなみに、production運用については以前書いたので適当に探してくださいw 結論から書いておくと、volumeをちゃんと活用すればいい、ってだけの話です。 まず、本番用と開発用のDockerfileは分けた方が良い。一つでやろうとするとどうにも無理がでるので。 自分はDockerfileとDockerfile-devというものを用意している。 docker-composeはほぼ必須です。少なくともrailsプロセスとDBだけでも二つは必要だし、Dockerfileを分けてると事故るので。 Dockerfileはこんな感じ。 FROM mybase:ruby-2.3.1-debian RUN echo "deb http://http.
Background When you first start using Ansible, you go from writing bash scripts that you upload and run on machines to running desired end state playbooks. You go from a write-once read-never set of scripts to an easily readable and updatable yaml. Life is good. Fast forward to when you become an Ansible power user. You’re now: Writing playbooks that run on multiple distros Breaking down your comp
2016 - 07 - 17 Dockerを使ってAnsible Playbookのテストをする packer docker docker engine ansible インフラ Ansible PlaybookをDockerコンテナに対して実行することでAnsibleのテストを行う。 参考 dev.classmethod.jp tdoc.info tdoc.info 本題 今回はPacker + Ansibleで Google Compute Engine のイメージを作成したかったので、 そのPlaybookのテストをDockerで行うことにした。 Docker Imageを作ることが目的ではない。 余談だが、自分は今の所Dockerイメージを作るのにAnsibleは使っていない。 Dockerfileで良いと思っている。真面目にImage作るならDocker HubやQuay.ioで
docker でansibleのテストができれば、 きっと、vagrantよりも速いはず! ということでやってみる。 まずは適当にDockerfile作ってbuild この時、authorized_keyを設定するようにDockerfileを作ると幸せです。 FROM ... ... RUN mkdir -p /home/username/.ssh;chown username /home/username/.ssh; chmod 700 /home/username/.ssh ADD authorized_key /home/username/.ssh/authorized_keys RUN chown username /home/username/.ssh/authorized_keys;chmod 600 /home/username/.ssh/authorized_keys ..
DockerコンテナでAnsibleをテストする¶ Ansible 2.0になり、Docker connection pluginが標準で入りました。これにより、Docker内にsshdを立てることなくAnsibleを直接実行できるようになりました。 すでに導入されている方も多く、かなり今更ではありますが、Dockerコンテナに対してAnsibleを実行してテストする方法についてここに記します。 参考GitHubリポジトリ Dockerに対する場合の制限¶ まず最初にAnsibleをDockerコンテナに対して実行する際の制限についてです。 基本的にはすべての機能が使えます。ただ、以下の制限があります。 /etc/hosts, /etc/resolv.conf, /etc/hostnameは書き換えできない これらのファイルはDockerがbind mountしており、書き換えられるが、置
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました Dockerを使っていると分かるのですが、イメージを作ったりコンテナを立ち上げたりしていると次第に履歴がゴミのようにたまっていきます。もちろん必要な場合もあるのですが、開発途中は不要だったりします。 それらの整理をしてくれるのがDocker-Cleanです。簡単なコマンドでDocker上の不要なリソースを整理してくれます。 Docker-Cleanの使い方 Docker-Cleanでイメージを削除します。 $ docker-clean images No containers To clean! Cleaning images... Error: No such image or container: 178ab09fdd10 Error: No such image or con
docker 導入に関する記事を別で書くつもりだが、 今やっているプロジェクトで docker build で大ハマりしたので、 その解決方法をメモしておく。 概要 CentOS 7 Docker 1.6.2 上記環境だが、特に yum のリポジトリを更新することもなく、 下記を実行して Docker 1.6.2 をインストール。 yum install docker docker-selinux チームで管理している Dockerfile があるので、 それを落として色々インストールした後、 docker build して docker pull する予定だった。 「no such file or directory」のエラーでビルドできない Dockerfile は他の方が docker build 成功しているので、 俺の環境でもできるはずなのに build がどうやってもうまくいか
はじめに 私はまだdockerのイメージ管理の仕組みをよく理解しておらず、試行錯誤して対処療法的にスクリプト書いてみただけですので、あまり期待せずに読んでください。 最速Docker研究会(DockerのTipsを20個上げていくぜ編) - Happy New Worldの「3. docker build時には必ずタグを付ける。」を実践していると、試行錯誤中に何度も同じタグでイメージをビルドするので、古いイメージはタグが外れた状態になっています。 $ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hnakamur/nginx-lua latest 79e74886d6a9 31 hours ago 527.6 MB <none> <none> 64b4fa0cdd27 32 hours ago 525 MB <none
本記事は、Docker Advent Calendar 2015 の12月6日の記事になります。 概要 Dockerfile にCMD とENTRYPOINT ってあるけどなにが違うのか調査とそのメモ 環境 OS : cent7.1 [root@docker-engine /]# docker version # Client: # Version: 1.9.0 # API version: 1.21 # Go version: go1.4.2 # Git commit: 76d6bc9 # Built: Tue Nov 3 18:00:05 UTC 2015 # OS/Arch: linux/amd64 # Server: # Version: 1.9.0 # API version: 1.21 # Go version: go1.4.2 # Git commit: 76d6bc9 #
インストール Docker エンジンのインストール Mac OS X Windows Ubuntu Red Hat Enterprise Linux CentOS Fedora Debian Arch Linux CRUX Linux FrugalWare Gentoo Oracle Linux openSUSE and SUSE Linux Enterprise Amazon EC2 Google Cloud Platform IBM SoftLayer Microsoft Azure Rackspace Cloud Joyent Triton バイナリをインストール Kitematic のインストール Docker Machine のインストール Docker Compose のインストール Docker Swarm のインストール Docker 基礎 コンテナのクイックスタート Do
結論 以下の手順で作るのが効率的です。 ベースにする Docker イメージを決める docker run -it <docker-image> sh でコンテナ内部で作業 1行ずつ、うまくいったらどこかにメモ 失敗したらいったん exit して再度 docker run ファイルの取り込みやポートの外部公開が必要ならオプション付きで docker run 全部うまくいったら Dockerfile にする ネットで見たことはないですが、もし docker build で試行錯誤しながら Dockerfile を作るとしたら、それはさすがに苦行です。 遅い デバッグしにくい!コンテナ爆発しろ!!って気持ちになります。 これが原因で「Docker 使えない 便利じゃない 」と思っていたのならそれは勘違いです。 手順詳説 試しに ip-api.com にリバースプロキシするだけの Nginx イ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く