ラベル Docker の投稿を表示しています。 すべての投稿を表示
ラベル Docker の投稿を表示しています。 すべての投稿を表示

2018/09/03

Dockerコンテナ内のNginxからホストOSのlocalhostにアクセスする

開発するサービスが増えてくると、同じホスト名だけどパスによって違うサービスを表示したいことがある。たとえば、https://example.comならRailsで作ったメニューページ、https://example.com/serviceならNuxt.jsで作った別サービスといった具合だ。

できれば環境はローカルマシン内だけで完結させたいので、DockerコンテナにNginxでリバースプロキシを立ててパスによってlocalhostの違うポートにプロキシしたい。しかし、Dockerコンテナ内でlocallhostにアクセスしようとすると、コンテナ内のゲストOSのlocalhostにアクセスしてしまう。

ということでDockerコンテナ内からホストOSにアクセスする方法とまとめる。


環境は以下の通り。

  • macOS High Sierra
  • Docker CE Version 18.06.0-ce-mac70 (26399)
  • Nginx(Dockerコンテナ内)

2018/08/24

macOS(High Sierra)でChromeからlocalhostにアクセスすると極端に遅くなるときの対処法

自宅用ラップトップをMacBook Pro 2018 High Sierraに更新したのだが、Chromium系ブラウザからlocalhostにアクセスしようとすると極端に遅くなってしまう。localhostのリソースにアクセスするだけで2〜3分ほどだ。

その対処法についていくつかまとめる。



環境と詳細な症状


環境は以下の通り。

  • MacBook Pro 2018 macOS High Sierra
  • ブラウザ
    • Chrome 68
    • Chromium 70
  • ローカルサーバー
    • Docker CE Version 18.06.0-ce-mac70 (26399)
    • Docker Compose version 1.22.0
    • nginx(Dockerコンテナ内)

2018/05/31

OpenFaaSでFaaS環境を用意しサーバーレスアーキテクチャを体験する

数年前から何かと「サーバーレス」がバズワードになっている。自分でサーバーを用意してAPIサーバーを立てて使うという時代から、人間はより本質的な部分に注力すべきという考え方からFaaS環境を使う時代に変わってきた。

ただ私自身、AWS LambdaやGCP Cloud Functionsなどのいわゆる「サーバーレス」というものを体験したことがない。それらのサービスは従量課金で一歩間違ったらクラウド破産しかねないため、その恐怖感もあったからだ。


しかしこのままでは時代の波に取り残されてしまうと思い、いろいろ調べたところOpenFaaSというOSSに出会った。

ということで、OpenFaaSを使って自分専用のFaaS環境を用意し、思う存分使ってみようと思う。


開発環境は以下のとおり。
  • CentOS@7.4
  • OpenFaaS@0.8.2
  • docker@18.03.1-ce
  • docker-compose@1.21.2

2017/09/04

GolangでDocker Remote APIを使ってDockerfileからイメージ作成する方法

photo by Daniel Ramirez

golangからDocker Remote APIを使ってイメージ・コンテナを操作する方法を覚えたので、次はDockerfileからイメージを作成し、実行する方法を学んだ。

Docker Remote APIの基本的な使い方は以下の記事を参照ください。


かなりハマったので、皆さんの助けになればと思う。

環境は以下のとおり。

  • Mac OSX
  • go 1.8.3
  • Docker for Mac 17.6.1-ce

2017/09/01

golangからDocker Remote APIを使ってイメージ・コンテナを操作する方法まとめ

photo by Daniel Ramirez

プログラムからDockerのイメージやコンテナの操作をして、必要に応じてコンテナを起動したり停止したりというサービスをつくろうとしていた。
いろいろ調べたので、Go言語(以下、Golangと呼ぶ)からDockerのイメージやコンテナの操作をする方法をまとめる。

Dockerはコンテナ仮想化ツールで、Golangで開発されている。
そのため、Docker Engineのクライアント(moby/client)をそのままGolangで使える。
※ Dockerの詳しい説明は省略する

今回はMobyを使ってイメージの作成・削除、コンテナの起動・停止を行う。


環境は以下のとおり。
  • Mac OSX
  • go 1.8.3
  • Docker for Mac 17.6.1-ce

2017/07/24

Dockerのコンテナ内でNode.jsアプリを実行し処理結果だけを返す

photo by Daniel Ramirez

Node.jsでツールをつくって公開するとき、または公開されているツールを使うとき、いちいちnodeの実行環境を整え、npmで大量のnode_modulesをインストールしなければならない。
普段からNode.jsの環境を整えている人ならいいけど、ためしに使ってみようかな?と思う層にはハードルがちょっと高い気がする。


ローカル環境を汚さず、もっと簡単に実行できないか?


と考えた結果、Dockerのコンテナに実行環境をつくり、処理結果だけを返してくれるようにすれば便利なんじゃない?と思いついたので当記事で方法を紹介する。

2017/01/23

Docker初心者でも安心!Portainerを使ってイメージやコンテナを管理する

初心者にとってDockerのイメージやコンテナをCLIで操作するのは大変だ。覚えるコマンドはたくさんあるし、操作だって手間がかかる。
単純にDockerfileを用意して、イメージつくって、コンテナ立ち上げるくらいなら簡単だが、コンテナの数が増えてくると手に負えない。

そこでPortainerというツールをオススメする。
PortainerはDockerホストをブラウザから操作するための軽量な管理ツールだ。LinuxだけでなくWindowsでもmacOSでも使う使うことができる。
※ Windowsのみ、Portainerが動いているDockerホストを管理することができない

もともとはUI for Docker(a.k.a. DockerUI)だったのが、Portainerに名前を変えて開発が継続されているらしい。

2016/12/06

Vue.js+Vuex、Express4、Dockerなどを使ってさくらのクラウドのAPIクライアントを作った

この記事は「さくらインターネット Advent Calendar 2016」の6日目の記事です。


さくらのクラウドのAPIドキュメントはご存知だろうか?
ドキュメントにはAPIの一覧やパラメータの詳細などが載っている。curlコマンドのサンプルも載っているので、APIを実行することはできるのだが......。


なんかイケてない。


macOSやLinuxを使っている人は問題ないが、Windowsユーザに優しくない。curl?なにそれ?
もっとインタラクティブでダイナミックに動かせるドキュメントだったらいいのに…。


ということで、さくらのクラウドのAPIをブラウザから実行できる「sacloud-api-tester」をつくった。

APIキーを入力し、左のAPIリストから試したいリクエストを選択、実行するだけでリソース操作やレスポンスを確認できる。
「SwaggerやPostmanを使え」はNGワード

2016/11/17

docker-composeのvolumesで指定したホストのディレクトリがマウントされずハマった

Dockerで複数のコンテナを一度に扱いたいときに便利なツール「docker-compose」を使ったとき、volumesで指定したホストのディレクトリがマウントされずにハマった。

結果からいうと、マウントされるタイミングを勘違いしていたという話。

対処法についても一緒にまとめる。

2016/11/16

DockerでNginxのコンテナを作成し、https化してWebページやサービスを公開する方法

自作Webサービスを公開するために、WebサーバはApacheより人気がでてきているNginxを採用した。しかし普通にCentOSなどにNginxをインストールして設定して、など手動やシェルスクリプトでやりたくなかったので、環境構築にはDockerを使うことにした。

ということで、DockerでNginxのコンテナをつくり、Webページ(サービス)を公開する手順をまとめる。

今回つかう環境は以下のとおり。

  • CentOS 7.2(ホストOS)
  • Docker 1.12.3
  • Nginx 1.11.5


ホストOSの準備


ホストOSは、さくらのクラウドの1コア/1GBプランのCentOS 7.2を使うことにした。
イベントやたまーにWeb上で2万円クーポンを配布しているので、ありがたく使わせてもらう。

CentOSの初期設定などは、以下の記事を参考にしていただければ、スクリプト一発で完了する。

サーバを作成したら、SSHで接続、ログインする。