🐋 ドック2を征服する


コンテナvs画像


📌 コンテナ.
:コードとすべての依存関係をパッケージ化し、アプリケーションをコンピューティング環境から別のコンピューティング環境に迅速かつ信頼性の高いソフトウェアの標準単位に実行します.
📌 画像:
:コード、ランタイム、システムツールなど、アプリケーションを実行するために必要なすべてのパッケージ.
つまり、ドッキングイメージとしてコンテナを作成します.도커 이미지로 컨테이너 생성 > 컨테이너로 프로그램 실행

1.ドックコンテナを隔離する原理


CGoupとネーミングスペースの概念について理解してください.
📌 C Group
プロセスグループ内のシステムリソース(CPU、メモリ等)の使用を管理する
ex.一部のアプリケーションは多すぎる>CグループはCPUとメモリの使用を制限している
📌 ネーミングスペース
仮想化テクノロジーは、システムを1つのシステムから分離します.
上記2つはLinuxカーネルにおける技術であり,これら2つを用いて容器を隔離している.では、Windowsやmac osでどのように実行しますか?
LinuxカーネルにはLinux仮想マシンがあります.리눅스 커널 > 리눅스 VM > MacOS / windows カーネルと私たちのオペレーティングシステムの間にLinux仮想マシンがあるので、できます.

2.ドックの操作手順

  • ドッキングクライアントからコマンドを入力してドッキングサーバに送信
    (ex. docker run helloworld)
  • ドッキングサーバで、コンテナのイメージが存在することを確認します.
    (helloworldがあるか確認してください)
  • がない場合はドッキングステーションからインポートし、ある場合は画像を使用してコンテナ
  • を作成する.

    3.ドッキングクライアントコマンドタイプ


    3-1. イメージ内部ファイルシステム構造の表示

    $ docker run 이미지이름 ls
    
    # run을 하면서 이미지를 서버에서 가져옴(서버에 없으면 허브에서 가져옴)
    # ls 라는 명령어는 도커에서 가져오는 이미지에 따라 되기도 하고, 안되기도 함

    3-2. コンテナのリスト

    # 실행중인 컨테이너만 볼 때
    $ docker ps
    
    # 꺼져있는 컨테이너까지 전부 볼 때
    $ docker ps -a

    3-3. 仮ロッカーを起動~開始

    docker run 은 실행과 시작을 같이 함 > docker create + docker start
    
    1. docker create 이미지 이름
    이미지에 있는 파일 스냅샷을 하드디스크로 넣어줌
    
    2. docker start -a 컨테이너 아이디/이름
    컨테이너가 실행 됨

    3-4. ドックの停止

    $ docker stop 컨테이너ID/이름
    $ docker kill 컨테이너ID/이름
    
    # 실행중인 컨테이너ID/이름은 docker ps 로 확인할 수 있습니다.
    📌 stop vs kill差異
    stop:完成前の作業、コンテナ停止
    kill:すぐに停止し、待つ必要はありません

    3-5. タグの削除

    $ docker rm 아이디/이름
    # 만약 실행중인 컨테이너라면 먼저 중지한 후에 삭제 가능합니다.
    
    # 전체 삭제
    $ docker rm 'docker ps -a -q'
    
    # 이미지 삭제
    $ docker rmi 이미지id
    
    # 컨테이너, 이미지, 네트워크 등 모두 삭제 하고 싶을 때
    $ docker system prune
    # 도커를 쓰지 않고, 모두 정리하고 싶을 때 사용하면 좋습니다.
    # 실행중인 컨테이너는 영향을 주지 않습니다.

    3-6. 実行中のコンテナにコマンドを送信

    # 실행중인 컨테이너에 명령어를 전달할 때는
    $ docker exec -it 컨테이너아이디 명령어
    # 컨테이너 ID 확인은 docker ps
    
    그러나, 매번 '-it 컨테이너아이디 명령어' 를 치면서 입력하기 번거롭기 때문에
    
    $ docker exec 컨테이너아이디 sh
    
    를 입력해서 컨테이너 쉘 안으로 들어가면 명령어(ls, touch..)만 입력해서 동작할 수 있다. 
    (아래 이미지 참고)
    
    쉘 환경에서 빠져 나오려면 : control + d