Docker Composeは普段使っていて大体設定の内容が理解できるけど、Kubernetesはちょっと難しそう・・・。そんな風に思っている人のためのKubernetes入門書です。最後のページでは「Docker ComposeじゃなくてKubernetesを選びたい理由」や「ECS、App Runner、Cloud Runの違い」などについてもカバーしています。
![Docker Composeユーザーに捧ぐKubernetes入門](https://cdn-ak-scissors.b.st-hatena.com/image/square/874e75b6580735f12601fd23d6c62cd41b66f339/height=288;version=1;width=512/https%3A%2F%2Fstatic.zenn.studio%2Fimages%2Flogo-only-dark.png)
Docker Composeは普段使っていて大体設定の内容が理解できるけど、Kubernetesはちょっと難しそう・・・。そんな風に思っている人のためのKubernetes入門書です。最後のページでは「Docker ComposeじゃなくてKubernetesを選びたい理由」や「ECS、App Runner、Cloud Runの違い」などについてもカバーしています。
早いものGWも終わり一週間が経ってしまいました。 長期の連休になるとだいたい自分は趣味のアプリケーション開発をよくすすめています(ふだんからやりたいけどなかなかできない)。今年のGWも趣味アプリケーションの開発をしてました。 いま作っているアプリケーションは自分の英語学習用のサービスなのですが(サービスについては別途どこかでご紹介したい)、新しい技術を実際に試す場としても利用しています。自分はいつも趣味アプリケーションで新しいことを試してみて、よかったらそれを職場にもっていくことが多いです。 アプリケーションはRailsで書いているのですが、Railsの他にMySQLやNginx、ElasticSearch、Kibanaなど関連するコンポーネントが多いです。 そのため、Docker Composeを利用して動かすことにしています。Dockerは以前から使っていたのですが、実際にアプリケーシ
構成 GitHubに公開しています。併せてご覧ください。 Docker周りだけを管理したいディレクトリと永続化だけを管理したいディレクトリに分けました。 以降、粛々とファイルとその説明が続きます。「とにかくGitHubのコードを動かしたい」方はこちらまで飛んでください $ tree ├── README.md ├── docker # DockerやDocker Compose │ ├── containers # 各コンテナ(イメージ) │ │ ├── mysql # MySQL 5.7 │ │ │ ├── Dockerfile # MySQL 5.7のDockerファイル │ │ │ ├── grant_user.sql # 初期セットアップでユーザを作成するスプリプト │ │ │ └── my.cnf # 初期セットアップで反映するmy
上記の記事で紹介したDocker環境でRuby on Railsの開発はできますが、実は少しだけ問題点があります。 それは、新しくgemを追加した場合、Dockerイメージを再度ビルドしないとコンテナが起動できないという点です。 DockerイメージをビルドすることでDockerファイルで定義されているbundle installが実行されるのでコンテナは問題なく起動できます。 しかし、gemの追加後、もしDockerイメージのビルドせずにコンテナを起動すると、『Bundler::GemNotFound』というgemが見つからないことを意味するエラーが発生し、コンテナが起動できません↓ $ docker-compose up Starting rails_app_db_1 ... done Starting rails_app_web_1 ... done Attaching to rai
アプリケーションをDocker化するにあたりdocker-composeという言葉を聞いたことがある方も多いと思います。 今回、docker-composeを利用してDockerでRailsアプリの開発環境の構築したので、docker-composeを利用したRailsアプリを作成する手順と、Dockerファイルやdocker-composeの解説もしたいと思います。 なお、Railsアプリで利用するDBはMySQLを想定しています。 作成したDockerファイルの解説 DockerファイルとはDockerコンテナの構成内容が記述されたファイルのことです。 Dockerファイルの内容をもとにDockerイメージの作成が行われ、Dockerコンテナというインスタンスを起動させることで利用できます。 今回作成した、Railsアプリを実行させるためのDockerファイルは以下のようになります。
ローカルの Rails の開発環境を直接OSに構築してしまうと、 仕事で別のバージョンの DB が必要になったケースなどで非常に苦労するので 何らかの仮想マシン上に開発環境を構築するほうが楽だと思う。 Vagrant と何かしらのプロビジョニングツールを使う方法がベターだが、 Docker Compose を試しに使ってみたら便利だった。 Docker Compose なに? Docker における複数コンテナの管理を docker-compose.yml という1ファイルでできるようにするツールです。 詳しくは https://docs.docker.com/compose Vagrant と比べたメリット 設定ファイルが短い。 例えば Vagrant + ansible の場合、Ruby とか PostgreSQL とかのインストール方法を自分で書く必要がありますが、 docker-c
{ switch(e.key) { case 'k': if (e.metaKey || e.ctrlKey) { e.preventDefault() open = !open; if (open) { document.body.classList.add('overflow-hidden'); } else { document.body.classList.remove('overflow-hidden'); } } } }"> OverviewGet Docker Docker Desktop Overview Install MacUnderstand permission requirements for MacWindowsUnderstand permission requirements for WindowsLinux Installation per Linux d
app: image: busybox container_name: app volumes: - /home/vagrant/opt/mysql:/var/lib/mysql mysql: image: mysql container_name: mysql environment: MYSQL_ROOT_PASSWORD: password ports: - "3306:3306" volumes_from: - app パーミッションエラーにならないパターン 「/var/lib/docker/volumes/mysql-db」フォルダに永続化される ※ ただし、「docker-compose down -v」されるとボリュームも削除されるので注意! トップレベルにvolumes:を置いてボリュームの定義する
Docker Composeを使ってRailsのプロジェクトの開発環境、ステージング環境を構築します。 🗻 Railsプロジェクトの構築まずはローカルにRailsのプロジェクトを構築します。 # Dockerfile FROM ruby:2.4.1 # Gemのドキュメンテーションをしない RUN mkdir -p /usr/local/etc \ && { \ echo 'install: --no-document'; \ echo 'update: --no-document'; \ } >> /usr/local/etc/gemrc # ライブラリの追加 RUN apt-get update && \ apt-get install -y --no-install-recommends \ postgresql-client \ nodejs \ && \ rm -rf /var
Reference documentation CLI reference docker (base command)docker build docker builder docker builderdocker builder builddocker builder prune docker buildx docker buildxdocker buildx bakedocker buildx builddocker buildx createdocker buildx debugdocker buildx debug builddocker buildx dudocker buildx imagetoolsdocker buildx imagetools createdocker buildx imagetools inspectdocker buildx inspectdocker
Reference documentation CLI reference docker (base command)docker build docker builder docker builderdocker builder builddocker builder prune docker buildx docker buildxdocker buildx bakedocker buildx builddocker buildx createdocker buildx debugdocker buildx debug builddocker buildx dudocker buildx imagetoolsdocker buildx imagetools createdocker buildx imagetools inspectdocker buildx inspectdocker
本連載では、Docker に興味はありつつも、まだ触ったことのない方向けに、実際に Docker を触って理解していただくための記事を提供します。これまでの記事では、単一のイメージまたはコンテナを取り扱う方法について取り上げてきました。しかし、実際の開発では、データベースや Web サーバなどの複数プロセスを組み合わせてシステムを構成することが一般的でしょう。Docker を使ったシステムでは、1 つの関心事を 1 つのコンテナに割り当てる(Each container should have only one concern)ことが公式ドキュメントでも推奨されており、必然的に複数のコンテナを扱うことが多くなります。本記事では、開発環境やテスト環境向けに、ローカルホスト上で複数コンテナを起動する方法として Docker Compose というツールを紹介します。 複数コンテナ管理ツール D
ども、かっぱです。 tl;dr Docker Compose って複数のコンテナで構成されるアプリケーションを管理するのにイイよ!って人に薦めておきながら、ずっと触れてなかったのでドキュメントの Quickstart を見ながら手を動かしてみた。 参考 docs.docker.com 上記の例は Rails + PostgreSQL の組み合わせだけど、それだと面白くないので、上記の docker-compose.yml や Dockerfile を参考に Nginx + Rails + MySQL な構成にして Rails の一人学習環境の構築を目的として進める。ゴールは環境の構築ではなく、構築した環境で Rails アプリケーションを構築してみること。(本記事でゴールまでたどり着けるか解らないけど。) メモ 以下のような感じで 各種ファイル docker-compose.yml db:
導入 Docker Composeを利用して、複数のdocker containerを使った環境の設定例を紹介します。なお、Docker ComposeはWindowsでは使えません。Max OSX or 64bit Linuxのみ対象となっています。 準備 Docker Toolboxをインストールできれば環境はすべて整います。 https://www.docker.com/products/docker-toolbox docker, docker-machine, docker-composeといったツールとVirtualBoxがインストールされるはずです。 次にmachineの準備 https://docs.docker.com/machine/get-started/ $ docker-machine create --driver virtualbox default $ do
Compose ファイルとは、Docker アプリケーション用のサービス、ネットワーク、ボリュームを定義した YAML ファイル です。最新かつ推奨される Compose ファイル形式のバージョンは、 Compose Specification で定義されています。Compose の仕様は、古いバージョン 2.x と 3.x を1つにまとめ、各フォーマット間が 持っている属性(property) を統合したものが、 Compose 1.27.0 以上 から実装されています。 この文章の状態¶ このドキュメントで定めるのは、複数コンテナのアプリケーションを定義するために使う Compose ファイル形式についての仕様です。このドキュメントの配布に制限はありません。 このドキュメントにおけるキーワード「 しなければならない(MUST) 」「 してはならない(MUST NOT) 」「 することに
このブログサイトをConoHaに移設したタイミングで、これまで裸で使っていたdockerコンテナについて、完全docker-compose化を行いました。しばらく運用していますが、とにかくdocker-composeと最新のdocker(1.12系)の組み合わせは最高に便利です。 Dockerは使っていたけど・・・ このサイトはWordpressで運用しているので、MariaDB(mysql)とphp(hhvm)とnginxを組み合わせて運用しています。普通にOS上で起動しても良いのですが、各々の設定やインフラ設定を管理しやすくするため、すべてdockerコンテナにして、DockerfileをGithubで管理することで、バージョン管理・構成管理を纏めて行っています。 元々docker化自体はこのサイト運用当初から実施していたのですが、dockerを裸で運用していました。要するに、ブログサ
docker-compose (fig) を利用して Rails の開発環境を作ってみます。個人的には Docker を本番環境で運用するのはまだちょっと怖いなーという感じなのですが、開発環境やテスト環境でならもう全然使えるレベルかなと思います。例として Rails 4.2 + PostgreSQL 9.4 の環境セットアップ。Docker の基本的な操作はひととおり抑えているものとします。 Docker, Rails, & Docker Compose together in your development workflow こちらの記事を参考にしてます。 Sample rails project on docker この記事で作ったプロジェクトはこっち。 コンテナ戦略 原則 1 Container 1 Service に従います。従って超基本構成なら Rails コンテナ DB コン
修正履歴: @aosho235 さんのコメントより、Dockerfile の"EXPOSE 8888" の不要な記述を修正 @aosho235 さんのコメントより、node アプリを起動するコマンドが抜けていた点を修正(Dockerfile, docker-compose.yml) @alt さんより編集リクエスト。シンタックスハイライトを適切なものに修正 感謝<(_ _)> Docker Compose 概要 Docker compose とは、複数のコンテナから成るサービスを構築・実行する手順を自動的にし、管理を容易にする機能です。 Docker compose では、compose ファイルを用意してコマンドを1 回実行することで、そのファイルから設定を読み込んですべてのコンテナサービスを起動することができます。 Docker Compose を使うまでの主なステップ Docker
Reference documentation CLI reference docker (base command)docker build docker builder docker builderdocker builder builddocker builder prune docker buildx docker buildxdocker buildx bakedocker buildx builddocker buildx createdocker buildx debugdocker buildx debug builddocker buildx dudocker buildx imagetoolsdocker buildx imagetools createdocker buildx imagetools inspectdocker buildx inspectdocker
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く