dockerコンテナの起動や停止をsystemd Service UNITで制御する為の設定を行います。 この設定をおこなうことにより、systemctlコマンドでコンテナの起動や停止、自動起動の設定が行えるようになります。 この設定でできるようになること docker-compose.ymlで定義されたdockerコンテナ群を以下のsystemctlコマンドで起動・停止できるようになります。 また、同様にsystemctlコマンドで自動起動設定やjournalctlコマンドでログが確認できます。 例 # 起動 $ sudo systemctl start compose@redmine.service # 停止 $ sudo systemctl stop compose@redmine.service # 自動起動 $ sudo systemctl enable compose@redm
2019-10-5追記 この記事を書いて1年が経ちましたが、実は今もほぼ毎日いいねやストックをもらっています。 やはり、Docker の Volume が気になる人は多いんだな、と感じています。 その一方、同じテーマで書いた 『[Docker] containerが使ってる全てのvolumeをCSV出力するワンライナー - Qiita』 は、未だに「1いいね」なのですが、どちらかと言えば、こちらの記事のほうが実践的なので、紹介しておきます。 具体的には「gitからcloneしてきてdocker-composeで起動したけど、これのコンテナとボリュームってどうつながってるの?」といった疑問の解決に使える思います はじめに Docker の Volume って難しくないですか? 理解に自信が無かった部分を、真面目に調べてまとめてみました。 これを読むとわかること コンテナ と ボリューム の違
はじめに Dockerであんなコンテナやこんなコンテナを動かしてると、なんかうまく動かなくて、デバッグのためにtcpdumpとかstraceなどのツールが使いたくなることが稀によくあります。 そんな時、デバッグ対象のコンテナ内にツールを一時的にインストールしちゃうというのが、まぁ簡単で分かりやすいんですが、デバッグ対象のコンテナを汚すのはできれば避けたいところです。 Dockerのコンテナの分離というのは、結局のところLinuxのリソースの名前空間の分離であるので、逆に同じ名前空間を共有すれば、デバッグ用に立てた隣のコンテナから、デバッグ対象のコンテナのネットワークやプロセスの状態を観察することも可能です。 また、docker buildはDockerfileを標準入力から受け取ることもできるので、ワンライナーにしてデバッグ用のコンテナをシュッと呼び出せるようにしてみました。 TL;DR
どうも、こんにちは。 アルマジロです。 AWSにdockerを導入しようとしたら、 centosをpullしただけなのにエラーが出て ドはまりしました。 【実行したコマンド】 docker pull centos:6 docker run -t centos:6 /bin/bash docker: Error response from daemon: cgroups: cannot find cgroup mount destination: unknown. 【AWSスペック】 uname -a Linux ip-172-31-27-125 4.14.33-51.37.amzn1.x86_64 #1 SMP Thu May 3 20:07:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux 本当にチュートリアルレベルのことしかやってないのに、 エラーで
私は以前の仕事で Docker を使っており、今の会社(eralabs.io)でも顧客のために使っています。そして、これまでの経験により得た Docker の知識を皆さんにシェアしたいと思い、Painless Docker Course を始めました。 私は Docker、コンテナ、オーケストレーション、分散システムが好きです。そして、Painless Docker の多くの読者がその内容に満足していることは嬉しいことでした。 Painless Docker はただの本ではなくコースとなりました。詳しくは、ウェブサイトをご覧ください。 ここで紹介しているのは、 Painless Docker Course の中身の一部です。Git repo でも公開していますので、ぜひご覧ください。 このチートシートは、Painless Docker Course にあるものの一部です。 GitHub の
はじめに エンジニアやっていると色んなサービスを作りたくなると思うのですが、Herokuのフリープランが使えなくなってしまった影響で無料でのサービス運営は難しくなってきています。 もちろん、Google App Engineなど無料で運用できるものもあるのですが、サービスにロックインされてしまうのが多くちょうど良い物が見つかりませんでした。 ということである程度安く色々やろうとすると、1台のサーバでいい感じに複数サービスを立ち上げるという昔ながらの構成になるのですが、Dockerを使うことで環境セットアップなどサーバ管理の手間を最小限にしていこう、というのがこの記事の趣旨となります。 方針 要件 安い サービスにロックインされない スケーラブル(もしサービスのアクセス量が増えたとしてスケールさせられる) インフラ管理が容易 セキュリティとかなるべく気にしたくない 以上のことを踏まえた結果C
Dockerのネットワーク構成について整理する。 図1: Dockerネットワーク全体図 物理NICが1個ついたDockerホストに2つのコンテナを立てると、図1のようになる。コンテナは172.17.X.Xのネットワーク内にいて、ホスト側には172.17.0.1のIPアドレスが付く。この構成自体は、VirtualBoxで言うところのホストオンリーネットワークと同じようなもの。異なる点として、Dockerネットワークは、ハードウェア仮想化ではなく、Linuxカーネルの機能であるvethペアとブリッジを組み合わせて実現される。 図2: vethペア veth (virtual Ethernet) は、図2のように、仮想NICのペアと、それをつなぐ仮想ケーブルを作る機能。ふたつの仮想NICはイーサネットで直接通信できる。 図3: ブリッジ ブリッジとは、LinuxマシンがL2スイッチ(スイッチン
単一ホスト内での Docker のネットワークの仕組みをまとめてみる。 全体像 まず、Docker のネットワークは以下の図ような構成になっている。 ざっとポイントをまとめるとこんな感じ。 * ホストには docker0 という仮想ブリッジが作成される * コンテナは veth を介して仮想ブリッジに接続される * コンテナ内からは eth0 というNIC があるように見える(実体は veth) * コンテナ内の eth0 には、空いているIPアドレスが自動で割り当てられる(なので、IPアドレスは不定)。 * コンテナからホストの外部に通信するには、NAT(IPマスカレード)が使われる * 単一ホスト上のコンテナ間の通信は、仮想ブリッジを経由して行われる(なので、コンテナ内で見える 172.17.0.0/16 のアドレスを使って通信できる) もう少し詳しく 分からないところを調べてみた。
私はこのところしばらく仕事でVMやコンテナを扱っていましたが、大学のいくつかのプロジェクトでJavaのコードを書かなければならないときは未だにvimを使用せず、新たに本格的なIDEをインストールしなければなりませんでした。これにはいつもイライラさせられていましたが、ついに今週、Dockerコンテナ内でNetBeansを実行できるようになったのです。それによって普段使用しないJavaのコードを書くための膨大な環境をパソコンにインストールしなくて済むようになりました。 Dockerコンテナ内でGUIアプリケーションを実行する場合には、いくつかの方法があり、 X11転送を行うSSH や VNC を使用します。しかし私が発見した最もシンプルな方法は、X11のソケットをコンテナと共有して、直接使用するというものでした。 このアイデアはとてもシンプルで、以下の Dockerfile を開始点として使用
はじめに Docker Blogで興味深い記事がアップされました。 TINY DOCKER OPERATING SYSTEMS Dockerコンテナを動かすためのミニマムなOSとしては、CoreOS、Snappy Ubuntu Core、Project Atomicなどがありました。そしてこのBlog記事では、2週間以内に新たなtiny Docker OSであるRancherOSがリリースされると紹介されています。RancherOSの特徴は以下の通り。 超ミニマム。RancherOSのISOバイナリは20MBしか無い(Mac OS XのFinder上だと21MBと表示されてしまいました) OS自体がDocker上で動く。RancherOSではPID 1でsysvinitやsystemdでは無くSystem Dockerが動き、その上に各サブシステムが動きます。RancherOSのgithu
※当ブログではアフィリエイト広告を利用しています。 最近ではIT関連サイトでDockerという単語を目にしない日が少ないくらい、Dockerが注目されているように思います。 本来Linuxのみで動作するものですがBoot2Dockerを使うことでWindowsでもDockerを使うことができたので、その手順をメモします。 Dockerとは Docker社(旧dotCloud社)が開発・公開しているコンテナ型の仮想化ソフトウェアです。 VMによる仮想化ではホストOS上にゲストOSを立ち上げてその中に環境を構築するのに対し、Dockerは単一のホストOS上でコンテナと呼ばれる隔離された領域に仮想のOS実行環境を構築できます。 複数の環境を立ち上げたい場合でもゲストOSが必要ないため起動が早い利点があります。さらにDockerfileと呼ばれるファイルにOSイメージや環境変数などを記述し、それを
昨年からImmutable Infrastructureという言葉が出始めて、サーバーを簡単に作って壊すという潮流が出始めました。また、サーバー管理を簡単にするツールとしてDockerというものが脚光を浴びており、いまどきのサーバー管理者に受け入れられてきました。 今回は、そのDockerをインストールしてLAMP環境を構築するステップを見ていきたいと思います。 Immutable Infrastructureとは? IaaS型のクラウドやVPSの台頭によって、簡単に仮想サーバーが立ち上げられる環境が整ってきました。 とはいえ、サーバーの立ち上げをするのはシステム構築時と、システム規模を大きくする時に限られ、サーバーの動作を変えたり、アプリケーションのアップデートをするときは、稼働しているサーバーの中身を修正するというのが従来のやり方でした。 しかしImmutable Infrastruc
適当にやったらできたけどこんなんでいいのかわからない。。。 用途: 例えば開発環境用サーバにdockerをinstallしていて、社内のネットワークからコンテナ内に直接ssh したい場合など。 ちなみにdockerにはポートマッピングの機能があって、hostのX番に接続したらコンテナYのZ番に転送する、みたいなことが出来るがこのエントリはその話ではない。 準備 dockerホスト 192.168.0.1 コンテナのprivate network 172.17.0.0/16 docker の install iptables で外からコンテナのNWへのアクセスの際にNATする設定を追加 ログインしたい外部の端末 192.168.0.2 静的ルーティングを足しておく route add -net 172.17.0.0/16 gw 192.168.0.1 ホストサーバ # iptables -t
RHEL7RC+EPEL版Dockerの前提で解説します。RHEL7RCを最小構成で入れて、次の手順でDockerを導入します。 # yum -y install bridge-utils net-tools # yum -y install http://download.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.1.noarch.rpm # yum -y install docker-io # systemctl enable docker.serviceDockerが設定するiptablesの内容を見るために(見やすくするために)、firewalldを停止した上でdockerサービスを起動します。 # systemctl stop firewalld.service # systemctl mask firew
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く