LoginSignup
0
0

More than 1 year has passed since last update.

営業出身文系SEのDockerややこし情報整理

Posted at

Dockerややこしポイント

RUN? START? BUILD? 何で何してるかわからん

最初Dockerというものを知ったときに持っていた印象は
「なんか好き勝手遊ぶ環境が手に入るんだろうなぁ」でした

実際そうはそうなのですがその遊ぶ環境(コンテナ)を手に入れるために取る手順がよくわからず困ったので
それについて簡単に覚書を書いておきます。

とりあえず用語をまとめておく

  • Image

コンテナを立ち上げるための情報が詰まったもの
こいつ自体はDockerHub とかからでも引っ張って来れるしDockerfileから作ることも可能

  • Docker file

Imageを作るための定義書
DockerHubにあるイメージもみんなが自分の環境でBuildしたDockerfileのImageをあげてる
人のやつ使ったことないからわかんないけど多分すごいんでしょう

  • Build

Docker FileからImageを作るためのコマンド
こいつを最初見た時からこのコマンドでコンテナを立ち上げると思ってしまってずっとDokcer FileとImageの関係性がわからなかった
こいつはコンテナの元になるImageを作るだけ!

  • RUN

コンテナを立ち上げてスタートさせるコマンド
こいつもこいつでややこしい名前
このコマンドでやっとImageからコンテナを立ち上げて起動することができる

いきなりDocker File作ろうとするな

小生基本的にアプリケーションばかり作ってきた人間ですのであまりLinuxについて詳しくありませんでした。
最近になってコマンド打ちながら頭の中でPCの状態を思い描けるくらいの感じ
なのでいきなりDokcer FIle作って環境のImage作るぜ!ってなってもいまいちイメージが掴めずあたふたしちゃいました

なので初めてDocker FIle作るよ〜って人は一回基本のImageだけパクってきて
それでRUNしてコンテナの中入ってその中でわちゃわちゃインストールするのを試してみるのがいいと思います。

実際初めて作った時のコードまとめておきます。


# ポート開けたpython3のImageからpython_1stっていうコンテナを立てた
docker run -d -it -p 8080:80 --name python_1st python:3

# コンテナの中に入った
docker exec -it python_1st /bin/bash

# UbuntuだったのでaptをUpdate
apt update -y

# Djangoをインストール
pip3 install Django

# Nginxをインストール
apt install -y nginx

# HTML直接書くためにHTMLをインストール
apt install -y vim

# HTMLをvimで作ってHello Worldだけ書く
vim /var/www/html/test.html

# Nginxを起動させる
service nginx start

# HTMLがChromeで確認できたら閉じる
service nginx stop

こんな感じ

でも毎回こんなんするんだるいからこれらのupdateしたりinstallしたりした結果をImageとして
Docke Fileから作ってそのImageでコンテナを立ち上げることでこれらの処理をなくして毎回同じ環境を作れるようにするというのがDockerの魅力の一つっぽい

頭の中スッキリしたのでいったんここでまたオリジナルDockerFile作り終わったら続き書くかも

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0