ドッキングステーションのインストールと構築


前の記事では、右奮闘環境の仮想マシンを作成しました.
ドッキングステーションはLinuxベースの仮想マシンでのみ使用可能なので、仮想マシンにドッキングステーションをインストールします.
端末を開いてコマンドを入力してください
(Ubuntu 20.04では、以下のコードでインストールできます.)
$ sudo apt update && sudo apt install -y docker.io net -tools
$ sudo usermod -aG docker $USER

$ sudo reboot #서버 재시작

ドッキングのデフォルトコマンド


コンテナの実行


デフォルトのフォーマット

$ docker run <OPTIONS> <IMAGE>:<TAG> <CMD> <args>
이미지는 필수로 명시해야합니다.


簡単な例を見てみましょう.
$ docker run docker/whalesay cowsay 'hello world'

Dockerのシンボルクジラはhelloworld
docker runというコマンドの後に、実行する画像(docker/whalesay)を書き、最後にコンテナに渡すパラメータ(cowsay「hello world」)を指定します.
コンテナを実行するとdocker/whalesayというイメージがローカルにないため、リモート・リポジトリからイメージが自動的に取得されます.
ドッキング画像アドレスのフォーマット.
<레지스트리 이름>/<이미지 이름> : <TAG>
レジストリアドレスはドメインアドレス形式であり、Default値dockerとして使用されます.ioレジストリを使用します.
例では、レジストリが省略されているためdocker.ioとなり、docker/wheresayは画像名であり、TAGは省略する.TAGもデフォルト値として「最新」というTAGを使用します.
docker/whalesay == docker.io/docker/whalesay:latest #결론은 같은 의미로 동작한다는 뜻입니다.
では、docker/wheresay画像に他のパラメータを渡します.
$ docker run docker/whalesay echo hello
今回はcowsayではなくechoコマンドコンテナは、パラメータが渡されるパラメータに応じて異なるコマンドを実行します.

-dオプションを使用してバックグラウンドでコンテナを実行します.今回使用したドッキングステーションイメージの名前はnginxです.同様に、ローカルではないため、リモート・リポジトリからイメージがインポートされます.
$ docker run -d nginx
-d 옵션으로 컨테이너 실행시, CONTAINER_ID가 리턴이 됩니다.CONTAINER IDはユーザーによって異なります.
CONTAINER IDはdocker psで確認できます.
nginx == docker.io/nginx:latest 	#nginx의 이미지 주소 형태입니다.

クエリーコンテナ


実行済みコンテナを問い合わせることができます.
$ docker ps

コンテナの詳細の確認


次のコマンドを使用して、コンテナの詳細を表示します.
$ docker inspect <CONTAINER_ID>
컨테이너의 상세정보들을 출력합니다.

きろくようき


コンテナから出力されたログを表示できます.
$ docker logs <CONTAINER_ID>
-f는 follow output옵션입니다. CTRL + C로 로깅을 종료합니다.

コンテナコマンドの転送


実行中のコンテナに新しいパッケージをインストールしたり、設定を変更したりする必要がある場合があります.
この場合、execコマンドを使用してコンテナコマンドを渡すことができます.
$ docker exec <CONTAINER_ID> <CMD>
execコマンドを使用してnginxコンテナにwgetをインストールし、localhostにリクエストを送信します.

コンテナ/ホスト間のファイルのコピー


実行中のコンテナとホストサーバの間でファイルを交換できます.
docker cp <HOST_PATH> <CONTAINER_ID>:<CONTAINER_PATH>
ホストサーバ上の/etc/passwdファイルをコンテナ内の/usr/share/nginx/html/場所にコピーします.
curl localhost/passwd요청으로 호스트의 파일이 컨테이너 내부로 복사된 것을 확인할 수 있습니다.コンテナからホストへのファイルのコピー
$ docker cp <CONTAINER_ID>:<CONTAINER_PATH> <HOST_PATH>
index.html이 제대로 복사가 된걸 확인할 수 있습니다.

ていしようき


使用が完了したコンテナを停止します.
$ docker stop <CONTAINER_ID>

docker psでは表示されませんが、-aオプションでは閉じたコンテナを確認できます.

コンテナ回収


閉じたコンテナを再起動します.
$ docker start <CONTAINER_ID>

コンテナの削除


中断したコンテナを完全に削除します.
$ docker rm <CONTAINER_ID>
コンテナを削除した後、続行できません.
まず、コンテナを停止して削除します.
docker ps -a를 하더라도 nginx컨테이너가 조회되지 않는 것을 확인할 수있습니다.

インタラクティブコンテナ


画像を実行する場合は、-itオプションを使用してコンテナに直接接続することもできます.
-インタラクティブ(stdin、stdout接続)、tty(ターミナル接続)の略です.
ubuntu:16.04イメージを実行してbash shellを実行します.
$ docker run -it ubuntu:16.04 bash

$ cat /etc/os-release	#컨테이너 내부의 OS버전을 확인

$ exit 					#컨테이너 중지

exec-itコマンドを使用して、作成したコンテナに接続することもできます.
$ docker run -d nginx

$ docker exec -it <CONTAINER_ID> bash	#exec명령어로 bash접속
컨테이너 내부로 접속하는 일은 보통 디버깅, 임시로 패키지를 설치할 때 주로 사용합니다.コンテナは揮発性プロセスであるため、コンテナにファイルとして格納されているファイルシステムでも、コンテナを削除するとすべてのデータが消えます.
したがって、パッケージがインストールされていても、コンテナを終了すると、インストールされているパッケージが失われます.