Dockerの基本的な動作の覚書です。
今回はDockerfileを使わない方式です。
【関連記事】
・Dockerfileを使った基本的なDockerの動作
Dockerエンジンのインストールについては日本語ドキュメントが非常にしっかりしているのでそちらの参照が一番良いかと。
http://docs.docker.jp/engine/installation/index.html
Dockerそのものについての概念も上記のドキュメントがわかりやすいです。
また、MacやWindowsのように、Linux固有のカーネル機能を使う項目への説明も載っています。
(OS Xネイティブのカーネルを使うわけではありません。)
http://docs.docker.jp/engine/installation/mac.html
dockerコマンドの基本動作の確認
・Dockerイメージを取得
1 2 3 4 5 6 7 8 9 10 11 12 |
$ docker pull ubuntu Using default tag: latest latest: Pulling from library/ubuntu c64513b74145: Pull complete 01b8b12bad90: Pull complete c5d85cf7a05f: Pull complete b6b268720157: Pull complete e12192999ff1: Pull complete Digest: sha256:3f119dc0737f57f704ebecac8a6d8477b0f6ca1ca0332c7ee1395ed2c6a82be7 Status: Downloaded newer image for ubuntu:latest |
1 2 3 4 5 |
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 735f80812f90 5 days ago 83.5MB |
・DockerイメージをからDockerコンテナを作成
1 2 3 4 |
$ docker run -d -it ubuntu:latest a9b0a1e24ceafe8e2db0a5205bf980ab2144d8c16cd251997f403f687ca416f0 |
・Dockerプロセスの確認
1 2 3 4 5 |
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a9b0a1e24cea ubuntu:latest "/bin/bash" 9 seconds ago Up 8 seconds dreamy_panini |
・DockerコンテナのBashにログイン
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
$ docker exec -it a9b0a1e24cea bash root@a9b0a1e24cea:/# cat /etc/os-release NAME="Ubuntu" VERSION="18.04.1 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.1 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic root@a9b0a1e24cea:/# root@a9b0a1e24cea:/# root@a9b0a1e24cea:/# uname -a Linux a9b0a1e24cea 4.9.93-linuxkit-aufs #1 SMP Wed Jun 6 16:55:56 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux root@a9b0a1e24cea:/# root@a9b0a1e24cea:/# root@a9b0a1e24cea:/# cat /proc/version Linux version 4.9.93-linuxkit-aufs (root@856d34d1168e) (gcc version 6.4.0 (Alpine 6.4.0) ) #1 SMP Wed Jun 6 16:55:56 UTC 2018 |
・Dockerコンテナの変更をコミット(イメージを作成)
1 2 3 4 |
$ docker commit a9b0a1e24cea sha256:f18fc082c801e5d63ee34c831793cb9c2100f16277d224f88635fabef998d9d0 |
・Dockerイメージを確認
1 2 3 4 5 6 |
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE <none> <none> f18fc082c801 8 seconds ago 83.5MB ubuntu latest 735f80812f90 5 days ago 83.5MB |
・Dockerイメージにタグをつける
1 2 3 |
$ docker tag f18fc082c801 ubuntu-test/test:0.1 |
・Dockerイメージを確認
1 2 3 4 5 6 |
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu-test 0.1 f18fc082c801 About a minute ago 83.5MB ubuntu latest 735f80812f90 5 days ago 83.5MB |
・Dockerイメージをファイルに出力
1 2 3 4 5 |
$ docker save -o /tmp/ubuntu-test ubuntu-test/test:0.1 $ ls -lah /tmp/ubuntu-test -rw------- 1 foo bar 82M 8 1 16:03 /tmp/ubuntu-test |
・Dockerイメージを削除
1 2 3 4 5 6 |
$ docker rmi ubuntu-test/test:0.1 Untagged: ubuntu-test/test:0.1 Deleted: sha256:f18fc082c801e5d63ee34c831793cb9c2100f16277d224f88635fabef998d9d0 Deleted: sha256:19aed4b96694c9229c4525d1509a17f86940c059947f13d9e7bb258fa8bdeffd |
・Dockerイメージを確認
1 2 3 4 5 |
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 735f80812f90 5 days ago 83.5MB |
・Dockerイメージをファイルから読み込み
1 2 3 4 5 |
$ docker load < /tmp/ubuntu-test 981e04dd4f35: Loading layer [==================================================>] 2.56kB/2.56kB Loaded image: ubuntu-test/test:0.1 |
・Dockerイメージを確認
1 2 3 4 5 6 |
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu-test/test 0.1 f18fc082c801 7 minutes ago 83.5MB ubuntu latest 735f80812f90 5 days ago 83.5MB |
・Dockerプロセスの確認
1 2 3 4 5 |
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a9b0a1e24cea ubuntu:latest "/bin/bash" 9 minutes ago Up 9 minutes dreamy_panini |
・Dockerコンテナにローカルファイルをコピー
1 2 3 4 5 6 7 8 9 |
$ touch testfile $ docker cp testfile a9b0a1e24cea:/tmp/ $ docker exec a9b0a1e24cea bash -c 'ls -al /tmp/' total 8 drwxrwxrwt 1 root root 4096 Aug 1 07:10 . drwxr-xr-x 1 root root 4096 Aug 1 06:58 .. -rw-r--r-- 1 502 dialout 0 Aug 1 07:09 testfile |
・Dockerコンテナからローカルにファイルをコピー
1 2 3 4 5 |
$ docker cp a9b0a1e24cea:/tmp/testfile /tmp/ $ ls -lah /tmp/testfile -rw-r--r-- 1 foo bar 0B 8 1 16:09 /tmp/testfile |
・Dockerコンテナを停止
1 2 3 4 |
$ docker stop a9b0a1e24cea a9b0a1e24cea |
・Dockerプロセスの確認(停止状態のコンテナも含めて)
1 2 3 4 5 |
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a9b0a1e24cea ubuntu:latest "/bin/bash" 13 minutes ago Exited (0) 7 seconds ago dreamy_panini |
・Dockerコンテナの起動
1 2 3 4 |
$ docker start a9b0a1e24cea a9b0a1e24cea |
・Dockerプロセスの確認
1 2 3 4 5 |
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a9b0a1e24cea ubuntu:latest "/bin/bash" 13 minutes ago Up 7 seconds dreamy_panini |
・Dockerコンテナを強制停止
1 2 3 4 |
$ docker kill a9b0a1e24cea a9b0a1e24cea |
・Dockerコンテナを削除
1 2 3 4 |
$ docker rm a9b0a1e24cea a9b0a1e24cea |
1 2 3 4 |
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
このブログは株式会社CoLabMixによる技術ブログです。
GCP、AWSなどでのインフラ構築・運用や、クローリング・分析・検索などを主体とした開発を行なっています。
Ruby on RailsやDjango、Pythonなどの開発依頼などお気軽にお声がけください。
開発パートナーを増やしたいという企業と積極的に繋がっていきたいです。
お問い合わせやご依頼・ご相談など