データセンタプログラミング05


05-Docker Introduction


🔹 Container Technologies
▶ Container Technologies
:必要なアプリケーションをインストールするときに、オペレーティングシステムに必要な、オペレーティングシステムで構成する必要がある、ライブラリ/その他などを組み合わせてインストールし、消去します.
LXCはLinuxベースのコンテナです.
▶ Docker
:ライセンスApacheライセンスの使用
:最大の特徴)オペレーティングシステム部分はLinux上でほとんどFreeBSD、WindowsとMacOSをサポートする
:Linuxコンテナに似た機能を持つドッキングステーション
:利点)既存の最大オペレーティングシステムをサポートしているため、ドッキングステーションに詳しいので、オペレーティングシステムが何であれ、ドッキングステーションは同じサポートを提供すると信じています.
:ドックステーションはコンテナ技術の1つで、多くのソフトウェアはコンテナ技術をサポートし、Linuxコンテナを含む.
*ドッキングステーションは、Googleで最もサポートされているソフトウェアであるため、Googleが提供しているクバーネディスと互換性があり、現在最も優れており、最もよく使われている有名なコンテンツ技術分野のソフトウェアです.

▶Dockerの意味
:図に示すように、クジラにはコンテナがあります.
ex.移行したいアプリケーション、ライブラリ、ソフトウェア、および設定を搭載したクジラ(1台のコンピュータ(クジラ)に複数のコンテナを搭載)
:ドッキングステーションはGo言語(サーバープログラマーが一番好きな言語)で作成し、オペレーティングシステムはLinux、Windows、MacOSをインストールすることができる.
*Linuxはまだ完全ではありませんが、性能が最もよく、運行が最も良いです.MacOSはインストールと使用に最も便利である.Windowsが一番憂鬱

▶ Docker Popularity
:450社がドッキングステーションに支払い使用
:37ビルダウンロード、ダウンロード回数が高い
:150,000個のジョブリストがリンクされています
:ドッキング・ステーション・ベースのアプリケーション350万個(ex.奮闘)
:200+開発者、ユーザーグループが非常に多い
🐣 また、ドックを多く使用する国/地域ランキング
:中国-サンヘレナ-大韓民国-イスラエル-エストニア順
ex.中国:アリババなどIT業界、サービス業界が大きくなっている(新技術を素早く受け入れる国)

▶Dockerを使う理由
(1) Open paltform
:ドッキングステーションはほとんどのプラットフォームで実行され、オープンソースです.
😀 したがって、ドッキングステーション上で実行すると、プラットフォームは任意の場所で独立してソフトウェアを実行できます.
(2) Separate your applications from your infrastructure-Deliver software quickly
:ドッキングステーションは、Linux、Windows、MacOSなどの複数のオペレーティングシステムで実行できます.
:ドッキングステーションを理解し、アプリケーションを実行します.
😀 そのため、オペレーティングシステムやCPUを考慮せずにアプリケーションを実行できます.そのため、インフラストラクチャとして独自に作成したアプリケーションを作成し、完全に独立したソフトウェアを作成することができます.
(3) Infrastructure as Code & DevOps
:必要なオペレーティングシステムとオペレーティングシステムに必要なmmodualを構成し、アプリケーションの実行時にプログラミングのようにプログラミングできるようにすると、高速で自動的に実行されます.
🙋「インフラストラクチャの独立はなぜ重要なのか」
🙋「インフラストラクチャコードはどのように実装されますか?」
😀 そのため、開発と運用を加速させるためにDevOpsルールを制定することを目標としています.
(4) Immutable Infrastructure using 'Docker file'
ドックの役割
:左ドッキングファイル-中間ドッキングイメージ-右ドッキングコンテナ
すなわち、ドッキングファイルを使用してドッキングイメージを構築し、ドッキングイメージを実行するときにドッキングコンテナとなる

🐣 また、Ubuntu OSイメージ、Windows OSイメージ、Openstackなどの開発者およびユーザが操作するオペレーティングシステムおよび環境が開発者およびユーザによって操作される場合、Pubilc Cloudは、そのオペレーティングシステムまたはオペレーティングシステムの上に環境を置く
🐣 必要なOS、環境、ソフトウェアを含むものと同様
🐣 ドッキングステーションを使用する場合は、必要なOSに必要なライブラリを設定する必要があります.これらのライブラリを作成するにはどうすればいいですか?
🐣 Dockerfile:プログラミングのように必要な環境をプログラミングする
😀 Infrastructure as Codeの例を以下に示す
# Docker file for a slim Ubuntu-cased Python3 Image

# ubuntu 운영체제 설치 (프로그래밍 하듯 요구함: 내가 만든 이미지는 ubuntu 최신 버전으로 만들어달라고 요청함)
FROM ubuntu:latest
MAINTAINER fnndsc "[email protected]"

# ubuntu 운영체제에 SW들을 업데이트 (apt-get: SW가 
손으로 타이핑하는 명령어)
# 개발환경 python3 set-up하고 upgrade
RUN apt-get update \
	&& apt-get install -y python3-pip python-dev \
    && cd /usr/local/bin \
    && ln -s /usr/bin/python3 python \
    && pip3 install --upgrade pip

ENTRYPOINT ["python3"]
😀 そのためubuntuのインストール、インストールされたソフトウェアのアップグレード、python 3のインストールとアップグレード、環境構築などの複雑な部分には数行のコードが必要です
😀 上でプログラムを実行します.つまり、Macプログラムはubuntu&pythonが正常に動作すると信じています.
😀 Infrastructure as Code:プログラミングによる必要なインフラストラクチャの構築
😀 Container
ex.イメージはディスク上で実行し、必要に応じて10個、必要に応じて100個、コンピュータのCPU、メモリ、ディスクを実行する
😀 Dockerfileを使用してInfrastructureをCodeとして作成し、実行してイメージを作成し、必要に応じて必要な場所でイメージを実行し、ドッキングイメージとしてコンテナを実行します.
(5) Flexible & Lightweight & Interchageable
  • Flexible
    :複雑なプロセスを必要とせずにDockerfileで複雑なアプリケーションを作成および実行できます.
    :作成したプログラムがどの環境で実行されているかにかかわらず、
  • プログラムを作成できます.環境が必ず構築されると信じているため、作成したプログラムは最下位の実行環境を考慮する必要はありません.
  • Lightweight
    :コンテナ・テクノロジーは、仮想マシンと比較して、ゲスト・オペレーティング・システムを個別のホスト・オペレーティング・システムに配置しないため、軽量レベルで使用できます.
    :guestオペレーティングシステムはアップグレードされておらず、hostオペレーティングシステム上で動作するため、相対Lightweightという言葉
  • が使用されています.
  • Interchageable
    :必要に応じて、必要に応じて任意の数のCPUとコンピュータとネットワークを使用し、アップグレードとダウングレードを行います.
    変わらないスタイル
    :100個のソフトウェアがバージョン1で実行されている場合は、すべてを同じイメージとして実行するのではなく、バージョン2にアップグレードできます.
    :バージョン2に再アップグレードし、問題が発生した場合はバージョン1に再アップグレードします.
    ドロップダウン
    :この方法で更新、アップグレード、変更、バージョンの更新が容易です.
    😀 これらの利点がありますが、EMCのソフトウェアでは、最も多くのプラットフォームでこれらの利点を確実に使用できるドッキングステーション
  • を使用しています.
    ▶ Docker Image
    コンセプトとしてインフラストラクチャ
    (1) code
    :ソフトウェアを実行しているコード.
    (2) runtime & libraries
    :実行時コード、ライブラリ(ライブラリ)、ミドルウェアなどのオペレーティングシステムに関連するソフトウェアを含む
    (3) environment variables
    :Linuxプログラミング、サーバプログラミングを行う場合、オペレーティングシステムに環境変数(変数)が影響する可能性があります.
    ex.path)独自に作成したプログラムを実行します.環境変数が含まれています.たとえば、オペレーティングシステムに場所を伝えて実行させると、ディスク上の任意の場所を検索できます.
    (4) configration files
    :オペレーティングシステムを設定するためのconfigurationファイルを含む
    😀 ドッキングステーションでは、必要なコンテンツを一度にインストールおよび消去できます.
    ▶ Docker Container
    :ドッキングファイルから作成された画像自体がロックされたファイルで、コンテナは必要に応じて必要な場所で実行されます.
    :runtimeinstance(ランタイム操作のオブジェクト)
    :コンピュータプログラムの作成時にclassを勉強します.classは設計図で、instanceはコンピュータメモリです.
    😀 ドッキング画像、コンテナ画像をインスタンス化
    :必要に応じてインスタンスを作成し、実際にコンピュータのメモリを占有し、CPUによって操作を行う
    ▶ Dockerfile, Image, Container & CLIs

    ▶ Sharing Immutable Infrastructures

    ▶ Birds-Eye-View of Docker
    :ドッキングイメージを取得し、containerとして構築します.実行(実行)の内容は次のとおりです.

    🍰 ヒント)Truble Shooting
    🎯 Docker Communuty Forums
    :リンク)https://forums.docker.com/c/docker-hub/10
    :コミュニティのホームページは、コミュニティに関連する問題の解決に役立ちます.
    🎯 Docker GitHub Issues
    :リンク)https://github.com/docker
    :ドッキングステーションに関するオープン・トピック、相互に問題と解決策をオープンし、問題が最初に発見された場合は、レポートできます.
    :サーバに関連するテクノロジーの変化が速く、新しいテクノロジーにエラーが発生する可能性があります.このサイトから関連情報を取得できます.
    🎯 StackOverflow
    :リンク)https://stackoverflow.com/
    🎯 Google Group
    :リンク)https://groups.google.com/
    🎯 韓国DOKERユーザーグループ
    :リンク)https://www.facebook.com/groups/korea.docker.user.group/
    🍰 ヒント)
  • ドッキングステーションのインストールに失敗したか、無料のドッキングコースに参加したい場合は、次のWebサイトにアクセスしてください.
    :リンク)https://www.katacoda.com/2