docker学習ノート1

12237 ワード

Dockerはオープンソースのアプリケーションコンテナエンジンであり、開発者がアプリケーションをパッケージ化し、移植可能なコンテナに依存し、流行しているLinuxマシンに公開したり、仮想化したりすることができます.容器は完全に砂箱メカニズムを使用しており、互いに何のインターフェースもありません.
centos 7 dockerのインストール
[root@localhost ~]#  yum -y install docker

dockerサービスを起動し、POSTに設定します.
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker

一、docker基本コマンドの紹介
attachは実行中のコンテナbuildに接続Dockerfileからイメージcommitを構築コンテナの変更から新しいイメージcpを作成コンテナとローカルファイルシステムの間でファイル/フォルダcreateをコピーして新しいコンテナdiffチェックコンテナファイルシステム上の変更eventsを作成サーバからリアルタイムイベントexecを取得実行中のコンテナでコマンドexportを実行コンテナのファイル系をtarアーカイブファイルhistoryにエクスポートしてイメージの履歴images画像リストを表示
[root@localhost ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx     latest              40960efd7b8f        4 days ago          108.4 MB

import tarballからコンテンツをインポートし、ファイルシステムイメージinfoを作成してシステム範囲の情報を表示inspectコンテナ、ミラー、またはタスクの戻り低レベル情報をチェック
[root@localhost ~]# docker inspect c2
[
    {
        "Id": "6454cb56e12f4209771e17cbcd866a7e5225665177be761f51ca8c797c30fe66",
        "Created": "2017-11-09T06:28:27.825868355Z",
        "Path": "/bin/bash",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 12737,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2017-11-09T06:33:45.36921727Z",
            "FinishedAt": "2017-11-09T06:33:05.320232823Z"
        },
        "Image": "sha256:40960efd7b8f44ed5cafee61c189a8f4db39838848d41861898f56c29565266e",
        "ResolvConfPath": "/var/lib/docker/containers/6454cb56e12f4209771e17cbcd866a7e5225665177be761f51ca8c797c30fe66/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/6454cb56e12f4209771e17cbcd866a7e5225665177be761f51ca8c797c30fe66/hostname",
        "HostsPath": "/var/lib/docker/containers/6454cb56e12f4209771e17cbcd866a7e5225665177be761f51ca8c797c30fe66/hosts",
        "LogPath": "",
        "Name": "/c2",
        "RestartCount": 0,
        "Driver": "devicemapper",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "journald",
                "Config": {}
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "no",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "docker-runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": -1,
            "OomKillDisable": false,
            "PidsLimit": 0,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0
        },
        "GraphDriver": {
            "Name": "devicemapper",
            "Data": {
                "DeviceId": "8",
                "DeviceName": "docker-253:0-8953729-1bc788c4a859fae3ebc08593c382a04e537a2c3fa95c4a18955ed68e0ac16e58",
                "DeviceSize": "10737418240"
            }
        },
        "Mounts": [],
        "Config": {
            "Hostname": "6454cb56e12f",
            "Domainname": "",
            "User": "",
            "AttachStdin": true,
            "AttachStdout": true,
            "AttachStderr": true,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": true,
            "OpenStdin": true,
            "StdinOnce": true,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "NGINX_VERSION=1.13.6-1~stretch",
                "NJS_VERSION=1.13.6.0.1.14-1~stretch"
            ],
            "Cmd": [
                "/bin/bash"
            ],
            "Image": "docker.io/nginx",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "maintainer": "NGINX Docker Maintainers \[email protected]\u003e"
            },
            "StopSignal": "SIGTERM"
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "aa2c902263ae520cbca01afdc83d933876801f91719d2bc1a2ffaa733672f21e",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "80/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/aa2c902263ae",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "f3c3bf88afc548d5eed29cb3e5435f92f8ef9292673ba8e76b9c24c441283f1b",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:42:ac:11:00:02",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "NetworkID": "f31a67fae354241108d5ed523e86676ed9ed0b0f5f3a1fac06c104be41cfa659",
                    "EndpointID": "f3c3bf88afc548d5eed29cb3e5435f92f8ef9292673ba8e76b9c24c441283f1b",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02"
                }
            }
        }
    }
]

次のショートカットキーを使用してコンテナの終了を完了し、バックグラウンドで実行します.
ctrl+p+q

killは、tar圧縮ファイルまたはstdINから画像loginをロードしてDockerレジストリにログインする1つ以上の実行コンテナloadを殺します.logout Dockerレジストリからログをログアウトします.logs 1つのコンテナのログを取得network管理Dockerネットワークnode管理Dockerクラスタノードpause 1つ以上のコンテナ内ですべてのプロセスportリストポートマッピングまたはコンテナの特定のマッピングpsリストコンテナを一時停止
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
6454cb56e12f        docker.io/nginx     "/bin/bash"         About a minute ago   Up About a minute   80/tcp              c1

pullレジストリからミラーまたはリポジトリを抽出
[root@localhost ~]# docker pull docker.io/nginx
Using default tag: latest
Trying to pull repository docker.io/library/nginx ... 
latest: Pulling from docker.io/library/nginx
bc95e04b23c0: Pull complete 
a21d9ee25fc3: Pull complete 
9bda7d5afd39: Pull complete 
Digest: sha256:9fca103a62af6db7f188ac3376c60927db41f88b8d2354bf02d2290a672dc425

pushミラーまたはリポジトリを登録センターrename名前変更コンテナにプッシュ
[root@localhost ~]# docker rename c1 c2

restartコンテナrmを再起動1つ以上のコンテナrmiを削除1つ以上のミラーrunを削除新しいコンテナでコマンドを実行
[root@localhost ~]# docker run -it --name=c1 docker.io/nginx /bin/bash
root@6454cb56e12f:/# 
root@6454cb56e12f:/# 

saveはtarアーカイブファイルに1つ以上のミラーを保存します(デフォルトではstdOUTにストリームされます)
Search Dockerセンターでミラーを検索
[root@localhost ~]# docker search centos7
INDEX       NAME                                        DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/ansible/centos7-ansible           Ansible on Centos7                              103                  [OK]
docker.io   docker.io/centos/mysql-57-centos7           MySQL 5.7 SQL database server                   15                   
docker.io   docker.io/openshift/base-centos7            A Centos7 derived base image for Source-To...   12                   
docker.io   docker.io/centos/php-56-centos7             Platform for building and running PHP 5.6 ...   10 
s
Ervice管理Dockerサービスstart 1つ以上の停止容器を起動
[root@localhost ~]# docker start c2

statsはコンテナ(s)リソースを表示統計的リアルタイムストリームstopを使用して1つ以上の実行コンテナを停止する
[root@localhost ~]# docker stop c2
c2

swarm管理Dockerクラスタtagイメージをリポジトリtopとしてマークしてコンテナを表示する実行手順
[root@localhost ~]# docker top c2
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                12573               12565               0                   14:28               pts/1               00:00:00            /bin/bas

unpauseは1つ以上のコンテナ内ですべてのプロセスupdateを一時停止して1つ以上のコンテナの構成バージョンを更新Dockerバージョン情報volume管理Dockerボリュームwaitが1つのコンテナの停止を待っていることを表示し、その終了コードを印刷します.
docker-v表示バージョン
[root@localhost ~]# docker -v
Docker version 1.12.6, build 85d7426/1.12.6

二、dockerパッケージミラーシリーズ
tarコマンドを使用して自分のミラーをパッケージ化
[root@localhost ~]# tar --numeric-owner --exclude=/proc --exclude=/sys -cvf centos7-base.tar /