Dockerやコンテナ技術について学んだので備忘録を書きます

Dockerやコンテナ技術について学んだので備忘録を書きます

見出し画像の出典先
Docker: Separating Applications from Infrastructure


はじめに

 こんばんは、Suzuka22です。しばらく記事の投稿をサボっていました。ごめんなさい。お盆休みが終わりますね。皆様、お盆はどうでしたか?私は実家の福岡に帰って沢山遊びました笑 さすがに分厚いロボット工学の本を持って帰るのは精神、肉体的に負担が大きいと判断したので持って帰りませんでした (それはそう)今週から仕事が始まるので仕事モードに切り替えます。本記事では新たに学んだことであるDockerについて書きます。

備忘録

コンテナ

さて、ここから本題に入ります。Dockerについて色々学んだのでここに備忘録を書きます。まずはコンテナに関して分かったことをここに書きます
(メモ書きレベルですみません)

  • コンテナ:アプリの実行に必要な環境をひとまとまりにし、OS上で動作するプロセスのこと
    • 他のプロセスから隔離してアプリを実行するプロセスのこと
  • コンテナ技術:他のプロセスと隔離したアプリの実行環境が作れる技術のこと
  • 仮想マシン:物理マシンの中にソフトウェアで物理マシンを再現。H/W(CPU、メモリなど)、ゲストOSを含む
  • 依存関係の例:ライブラリBのバージョンが変わったらアプリAは実行することができない
  • 物理マシンとはPCのこと
  • ホストOS:仮想マシン内における本物のコンピュータのOSのこと[1]
    • ハードディスクの上に本来のOSが入っている[1]
  • ゲストOS:仮想マシン内における偽物のコンピュータのOSのこと[2]
  • dockerを停止させたいときはdocker stop <コンテナ名> というコマンドを入力
Docker
  • Dockerの特徴:アプリ+その動く環境」をまるごとパッケージ化にすることが出来るツール
    • 「アプリ+その実行環境」をセットで持ち運べる仕組み
    • 単一のマシン上でコンテナを簡単に作って動かして管理できるツールセット
    • Dockerは作って、配布して、動かす
    • OS、ライブラリのバージョンの差といった環境差異によるトラブルを防ぐ
    • 動かない、動作が違うトラブルが減る
    • プロジェクトごとに異なる実行環境を用意 (WSL2+docker)
    • Dockerfileがあれば自動で環境構築が可
  • Dockerの作成について
    • コマンドの$docker image build:Dockerイメージ(コンテナの設計書)を作成
    • Dockerfile:Dockerイメージの作成手順書
    • DockerfileからDockerイメージを作成する
    • コマンドの$docker image push:作成したDockerイメージを配布
      • Dockerイメージをレジストリに配布
      • レジストリ:windowsが使うカンペみたいなもの[3]
      • ユーザがdocker hubというクラウド上のレジストリサービスにDockerイメージを配布[4]
      • docker hubからDockerイメージを取得
      • Docker hubから取得したDockerイメージを実行することでDocker コンテナとして利用可能
      • コマンドの$docker container runでDockerコンテナを利用する

参考文献

カテゴリー

Suzuka22

ロボットエンジニア・ソフトウェア開発

リケジョ (情報工学を専攻)。出身は福岡です。現在は長野県に住んでいます。社会人2年目のロボット開発エンジニアです。ソフトウェアを開発しています。短大から公立大に編入した珍しい人です。保有スキルはAI、プログラミング全般、ROS、Rasberrypiなどです。元ロボコニストで世界大会に出場した経験があります。本業以外にIT系のベンチャー企業にも所属しています