Macも使ってあげたい
Mac book買ってもらったのにAmazonPrimeしか見てないんです、、、
これではあまりにもかわいそうなのでそろそろ別の使い方をしよう!!と思い、この記事を書くことにしました。
でも、あんまり容量減らしたくないので今回はdockerを使ってCentOSの環境を作ります、!!
そもそもdockerってなによ
dockerはですね、簡単に言うとコンテナ技術ですね。
これを使うと一瞬で自分のパソコンの中にもう一台別のパソコン的なものを作ることができちゃうんです!
仮想化とは異なり、ホストOSと同じカーネルを使うことで容量の大量消費を防いでくれます。
dockerについては今度ちゃんとまとめるつもりなので気になる方はぺぺっと検索してみてください!(私のちゃんとまとめるつもりシリーズ大量にあるね☺️)
さぁCentOS7の環境を構築しよう!
[前提]
ホストOS : macOS Catalina 10.15.5
構築したいOS : CentOS7
[ディレクトリ構成]
-- docker/
∟ example/
∟ Dockerfile
exampleの中で作業していきます。
Dockerfileは後で自分で書きます。
それではCentOS7を構築してみましょう!
DockerHub
ここからMacで使用できるdockerをインストールしてください。
インストールが終わったらFinderからダウンロードしたDocker.dmgをポチッと。
そうするとdrag and dropの指示がでるので指示通りに。
(ダウンロードアイコンのところからこの作業しようとしたらなんかできなかった、なんで、、、)
はい!これでLaunchpadにdockerが追加されました!
docker(クジラのアイコン?)をクリックすると右側にターミナルが開かれるので、左側の指示にしたがって進んでください。
これでターミナルにdockerが入りました!
試しに新しくターミナルを開いて
docker
とコマンドを入力してみてください。動きますね?
次に
docker run centos:7
と入力してください。これでローカル環境にcentos7のimageが入りました。
docker images
これで確認できます。
どこかにcentosって文字が見つかるはず!笑
はい!それではDockerfileも書いてみましょう。
FROM centos:7
LABEL maintainer="miyabi <miyabi@example.com>"
RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 \
&& yum -y install python3
CMD ["/usr/bin/bash"]
LABELのメールアドレスとか名前はテキトーでも動きます!
これは自分的なCentOSの環境のレシピのようなものなのでもっと使いやすくしたいところ。
そのままexampleディレクトリにステイしたままで次のコマンドを実行してください。
docker build -t miyabi .
miyabiのところはimage名なので好きなのをつけて大丈夫です。
ヤッタァ!!これで自分のimageが完成です。
docker images
`````
ほら!miyabi(自分でつけたimage名)ができてるでしょ!!
ついにコンテナ作るよ!!!
docker run -it miyabi
miyabiのところは先ほど自分がつけたimage名に変えてくださいね。
わぁ!これで自分で構築した環境に入り込めてますね!!
試しに
`````
python3
`````
と入力してみてください。
動くでしょ??
Dockerfileにpython3をインストールしてくれるように記入したので入っているんです!
今回はCMDのところにrunしたらコンテナ内に入り込むように書いたのでrunした時点でそのまま動かすことが可能ですが、もっと色々アレンジできますよん。
## 注意
ctrl + Dで環境から抜け出すことができますが、セーブしないと次回コンテナ内に入り込んだ時にまっさらな状態になっているので気をつけてくださいね!
## おわりに
dockerって便利!慣れてくるとDockerfileささっとかけばたくさんの簡易的な環境をすぐに作り上げることができますね〜
勉強不足なのでまだこれといった恩恵はまだ受けていませんが、絶対すごいじゃん!!って感じですね〜!!!
すぐたてられるし、すぐ壊せるし!!
今回のだとDockerfileの内容がペラペラすぎてpython3しか使えないけど、macでcentOS使ってると思うとなんか嬉しい☺️
間違っていたらどんどん突っ込んでください!!
最後まで読んでいただきありがとうございます。