見出し画像

#56 Dockerアウトプット

こんにちは、hiroです😃
単語を調べるとさらに知らない単語が出て、調べる階層が深くなるのは駆け出しエンジニアあるあるでしょうか?笑
単語の意味を把握できていないものが多いため、本日も1ページ学習するのに1時間半かかってしまいました。。。
スキマ時間を見つけて学習の習慣化・仕組み化をする事と、理解の定着を進めてスムーズにインプットが出来る様に意識して取り組んでいきます!


本日はDocker imageについて学習したのでアウトプットしていきたいと思います!調べた単語は最後にまとめて記載してみました😄


Docker image

・環境のスナップショットとしての役割。
OS( CentOS / Ubuntu / Alpine )、ソフトウェア( Nginx / MySQL )、ランタイム( PHP / Ruby )などの環境を提供する。
・Dockerの公式がDockerHubと呼ばれるサービス上で、さまざまなOS・ソフトウェアを公開しており、DockerHubからさまざまなDocker imageを取得する事が出来る。


Ubuntu上でコマンドを動かす

■Play With Dockerターミナル
$ docker pull ubuntu

・DockerHub上からローカルへ取得するコマンド

# $ docker pull ubuntuコマンド入力後の出力結果
Using default tag: latest
latest: Pulling from library/ubuntu
898c46f3b1a1: Pull complete
63366dfa0a50: Pull complete
041d4cd74a92: Pull complete
6e1bee0f8701: Pull complete
Digest: sha256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8
Status: Downloaded newer image for ubuntu:latest
■Play With Dockerターミナル
$ cat /etc/issue

・Play With Docker上のホストがAlpineLinuxで動いている事を確認。

# $ cat /etc/issueコマンド入力後の出力結果
Welcome to Alpine Linux 3.12
Kernel \r on an \m (\l)
$ docker run ubuntu cat /etc/issue

・Ubuntuのimageを実行し、その引数へ cat /etc/hosts を渡す。

# $ docker run ubuntu cat /etc/issue 出力結果
Ubuntu 20.04.2 LTS


bashを使用する

■Play With Dockerターミナル
$ docker run -i -t ubuntu bash

・bashのような対話的な入力が必要なプロセスも実行可能。
・対話的に使用するためには-i -tオプションを使用。

# $ docker run -i -t ubuntu bashコマンドの出力結果
root@123398a4c7c8:/
#
↑に「cat /etc/issue」や「ls」「env」「ps」コマンドを実行する事が出来る
exitコマンドでコンテナから抜け出す事が出来る


Tag

・ラベルの役割を持つ機能がある。基本的にバージョン管理を目的に使用される事が多い。

命名規則1(Docker公式)
<イメージ名> : <タグ>
命名規則2(ユーザー作成)
<ユーザー名> / <イメージ名> : <タグ>
命名規則3(非公式レジストリ)
<レジストリ名> / <ユーザー名> / <イメージ名> : <タグ>


用語

CentOS( セントOS )は、RHEL ( Red Hat Enterprise Linux )と機能的に互換性があることを目指した、フリーのLinuxディストリビューション( Linuxカーネルとその他ソフトウェアを1つにまとめ、利用者が安易にインストール、利用出来る様にしたもの )の事。
Ubuntu( ウブントゥ )は、Linuxディストリビューションの1つで、フリーソフトウェアとして提供されている。Debian GNU/Linux( Unix系システムのディストリビューションを作成しているプロジェクト )を母体としたOSの事。
Alpine( アルパイン )は、Musl( マッスル:MITライセンスでリリースされているLinuxカーネルに基づいたOS向けの標準Cライブラリ )とBusyBox( ビジーボックス:Coreutilsなど標準UNIXコマンドで重要な多数のプログラムを単一の実行ファイルに「詰め込んで」提供する、特殊な方式のプログラム )をベースとしたLinuxディストリビューションの事。
ランタイムは、実行時に必要な物。
cat /etc/hostsは、Unix系のOSで使用される。DNS代わりにホスト名とIPアドレスの対応付けを書いておくファイル。
DNS( Domain Name System )は、IPアドレスとドメイン名を紐付けするシステム。
bash( ボーンアゲインシェル:Bourne Again Shell )は、ユーザーの入力内容をコンピュータに伝えるプログラム(受付係)の事。
-i -tオプションの -i は、コンテナの標準入力を有効化、 -t はttyを有効化するためのオプション。
tty( テレタイプライター:teletypewriter )は、標準入出力となっている端末デバイスの名前を表示するUnix系のコマンド


本日も最後まで読んでいただき、ありがとうございました🙇‍♂️


参考文献
入門Docker

この記事が気に入ったらサポートをしてみませんか?