Dockerってなにがうれしん?#0
こんにちは!
またまたお久しぶりです笑
仕事ではc++でロボット制御を担当していますが、学習のため、
iOSアプリ、Webアプリを勉強し始めました。
特にARKitを使ったARアプリに興味があって、ロボットにも活かせたらなぁと思っています。
またWebアプリはRuby, Ruby on Railsに軽く触れてみました。
他の言語に触れることで、普段のコーディングにも幅を持たせることができたらいいなと!!
さてさて、今日はDockerのついてかるく書こうかなと思います。
下のサイトで勉強しました!
www.ogis-ri.co.jp
Dockerとは?
実行環境、開発環境を簡単に構築できる便利なやつ!(笑)
いいところ:
- アプリの実行環境をラップしてくれる!ホストが汚れない!
- 実行環境をファイル(Dockerfile)で共有できる!すごい人の便利な環境が使える笑
- 仮想環境と比べて早い
イメージ
- オブジェクト指向でのクラス
- イメージはDockerfileからビルドされる。Dockerfileに言語だったりライブラリ群を記述して、仮想的な環境を構築する
- Docker Registryを使ってイメージそのものを共有することもできる
すでにDockerHubなので自分が欲しいと思うような実行環境はすでに配布されています。
だからそこから持ってくれば、簡単に環境構築ができます。
ただ、ここでは仕組みを理解するために、Dockerfileからの構築を見てみたいと思います。
コンテナ
Dockerfile
- イメージを作るファイル
- 構築したい環境で使用する言語とかライブラリ、ミドルウェアのインストールを書いてビルド
- すでに巷に溢れてるので、書かなくてもOK
FROM ruby:2.5 # RUN apt-get update -qq && apt-get install -y nodejs postgresql-client RUN mkdir /myapp WORKDIR /myapp COPY Gemfile /myapp/Gemfile COPY Gemfile.lock /myapp/Gemfile.lock RUN bundle install COPY . /myapp # Add a script to be executed every time the container starts. COPY entrypoint.sh /usr/bin/ RUN chmod +x /usr/bin/entrypoint.sh ENTRYPOINT ["entrypoint.sh"] EXPOSE 3000 # Start the main process. CMD ["rails", "server", "-b", "0.0.0.0"]
これはruby on railsを勉強するために使ったDockerfileです。
rubyを使いますよ、gemはこんなですよ、とか記述してあります。