Docker Basic

时间:2023-03-10 02:22:37
Docker Basic

安装 docker


  1. 二进制格式
    tar -xf /usr/local/src/docker/docker-19.03..tgz
    cd docker/
    mv * /usr/bin/
    mkdir /etc/docker
    vi /etc/docker/daemon.json
    dockerd &
  2. yum 包
    yum install epel-release
    yum install docker-io

    centos-6

    yum install -y yum-utils
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    yum install docker-ce docker-ce-cli containerd.io
    systemctl status docker
    docker -v

    centos-7

    默认关闭了【nightly or test】在 docker-ce.repo 中:

    yum-config-manager --enable docker-ce-nightly
    yum-config-manager --enable docker-ce-test
    yum-config-manager --disable docker-ce-nightly
    yum-config-manager --disable docker-ce-test

    指定确定的版本来安装

    yum list docker-ce --showduplicates | sort -r
    yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
  3. 阿里安装

    # step : 安装必要的一些系统工具
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    # Step : 添加软件源信息
    sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # Step : 更新并安装Docker-CE
    sudo yum makecache fast
    sudo yum -y install docker-ce
    # Step : 开启Docker服务
    sudo service docker start # 注意:
    # 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,您可以通过以下方式开启。同理可以开启各种测试版本等。
    # vim /etc/yum.repos.d/docker-ee.repo
    # 将[docker-ce-test]下方的enabled=0修改为enabled=
    #
    # 安装指定版本的Docker-CE:
    # Step : 查找Docker-CE的版本:
    # yum list docker-ce.x86_64 --showduplicates | sort -r
    # Loading mirror speeds from cached hostfile
    # Loaded plugins: branch, fastestmirror, langpacks
    # docker-ce.x86_64 17.03..ce-.el7.centos docker-ce-stable
    # docker-ce.x86_64 17.03..ce-.el7.centos @docker-ce-stable
    # docker-ce.x86_64 17.03..ce-.el7.centos docker-ce-stable
    # Available Packages
    # Step2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.0.ce.-.el7.centos)
    # sudo yum -y install docker-ce-[VERSION]
  4. 服务管理
    systemctl start docker
    systemctl stop docker

    yum

  5. 镜像加速
    {
    "registry-mirrors": ["http://hub-mirror.c.163.com","https://registry.docker-cn.com","https://mirror.ccs.tencentyun.com"]
    }

    daemon.json

    重新配置镜像信息,重启一下

    #这里操作,等同于登录到本地内建虚拟机执行编辑配置的操作
    docker-machine ssh default
    sudo vi /var/lib/boot2docker/profile
    # --registry-mirror http://hub-mirror.c.163.com
    exit
    docker-machine restart default
    # 检查添加
    docker info

    windows 环境下【DockerToolbox】

  6. 卸载
    卸载 7 的 yum
    yum remove docker-ce docker-ce-cli containerd.io
    # $ du -sh /var/lib/docker
    # .2G /var/lib/docker
    rm -rf /var/lib/docker

镜像操作常用命令


  1. 检索
    docker search 关键字
  2. 拉取
    docker pull 镜像名称[:tag]
    tag 表示版本信息,默认是 latest
  3. 本地镜像
    docker images
  4. 删除本地镜像
    docker rmi IMAGE-ID

容器操作命令


  • # 创建容器
    docker run -d [--name 容器名] 镜像名[:tag]
    #停止容器:
    docker stop [容器名|CONTAINER-ID]
    #启动容器:
    docker start [容器名|CONTAINER-ID] #查看容器
    #查看运行中的容器:
    docker ps
    #查看所有的现有容器:
    docker ps -a #删除容器
    docker rm [容器名|CONTAINER-ID] #端口映射
    docker run -d -p : [--name 容器名] [镜像名:tag] #查看容器日志
    docker logs [CONTAINER-ID|容器名]

    基本操作

    # 启动容器
    docker run -d --name myTomcat tomcat: # 启动容器并且映射端口到本地监听的 (默认tcp)
    docker run -d -p : --name myTomcat2 tomcat:

    启动一个 tomcat 容器

    #交互式启动容器
    docker run -it --name myCent centos:
    # ctro + p + q 退出容器保持运行,exit 退出并关闭容器

    交互式启动一个 linux 容器

  • # 这是一个正在运行的 tomcat8
    $ docker inspect 39692a4836cd
    [
    {
    "Id": "39692a4836cdb733d4e23e25a0ca8cef1db3680b05c951e50d9489cebf9ed3c4",
    "Created": "2020-05-11T02:31:15.904851059Z",
    "Path": "catalina.sh",
    "Args": [
    "run"
    ],
    "State": {
    "Status": "running",
    "Running": true,
    "Paused": false,
    "Restarting": false,
    "OOMKilled": false,
    "Dead": false,
    "Pid": ,
    "ExitCode": ,
    "Error": "",
    "StartedAt": "2020-05-11T02:31:17.861972617Z",
    "FinishedAt": "0001-01-01T00:00:00Z"
    },
    "Image": "sha256:eb2cfb95e04d8afcdb65c770cd44d9d003836d53fb780e33d3a6f8c5f7d80def",
    "ResolvConfPath": "/mnt/sda1/var/lib/docker/containers/39692a4836cdb733d4e23e25a0ca8cef1db3680b05c951e50d9489cebf9ed3c4/resolv.conf",
    "HostnamePath": "/mnt/sda1/var/lib/docker/containers/39692a4836cdb733d4e23e25a0ca8cef1db3680b05c951e50d9489cebf9ed3c4/hostname",
    "HostsPath": "/mnt/sda1/var/lib/docker/containers/39692a4836cdb733d4e23e25a0ca8cef1db3680b05c951e50d9489cebf9ed3c4/hosts",
    "LogPath": "/mnt/sda1/var/lib/docker/containers/39692a4836cdb733d4e23e25a0ca8cef1db3680b05c951e50d9489cebf9ed3c4/39692a4836cdb733d4e23e25a0ca8cef1db3680b05c951e50d9489cebf9ed3c4-json.log",
    "Name": "/myTomcat3",
    "RestartCount": ,
    "Driver": "overlay2",
    "Platform": "linux",
    "MountLabel": "",
    "ProcessLabel": "",
    "AppArmorProfile": "",
    "ExecIDs": null,
    "HostConfig": {
    "Binds": null,
    "ContainerIDFile": "",
    "LogConfig": {
    "Type": "json-file",
    "Config": {}
    },
    "NetworkMode": "default",
    "PortBindings": {
    "8080/tcp": [
    {
    "HostIp": "127.0.0.1",
    "HostPort": ""
    }
    ]
    },
    "RestartPolicy": {
    "Name": "no",
    "MaximumRetryCount":
    },
    "AutoRemove": false,
    "VolumeDriver": "",
    "VolumesFrom": null,
    "CapAdd": null,
    "CapDrop": null,
    "Capabilities": null,
    "Dns": [],
    "DnsOptions": [],
    "DnsSearch": [],
    "ExtraHosts": null,
    "GroupAdd": null,
    "IpcMode": "shareable",
    "Cgroup": "",
    "Links": null,
    "OomScoreAdj": ,
    "PidMode": "",
    "Privileged": false,
    "PublishAllPorts": false,
    "ReadonlyRootfs": false,
    "SecurityOpt": null,
    "UTSMode": "",
    "UsernsMode": "",
    "ShmSize": ,
    "Runtime": "runc",
    "ConsoleSize": [
    , ],
    "Isolation": "",
    "CpuShares": ,
    "Memory": ,
    "NanoCpus": ,
    "CgroupParent": "",
    "BlkioWeight": ,
    "BlkioWeightDevice": [],
    "BlkioDeviceReadBps": null,
    "BlkioDeviceWriteBps": null,
    "BlkioDeviceReadIOps": null,
    "BlkioDeviceWriteIOps": null,
    "CpuPeriod": ,
    "CpuQuota": ,
    "CpuRealtimePeriod": ,
    "CpuRealtimeRuntime": ,
    "CpusetCpus": "",
    "CpusetMems": "",
    "Devices": [],
    "DeviceCgroupRules": null,
    "DeviceRequests": null,
    "KernelMemory": ,
    "KernelMemoryTCP": ,
    "MemoryReservation": ,
    "MemorySwap": ,
    "MemorySwappiness": null,
    "OomKillDisable": false,
    "PidsLimit": null,
    "Ulimits": null,
    "CpuCount": ,
    "CpuPercent": ,
    "IOMaximumIOps": ,
    "IOMaximumBandwidth": ,
    "MaskedPaths": [
    "/proc/asound",
    "/proc/acpi",
    "/proc/kcore",
    "/proc/keys",
    "/proc/latency_stats",
    "/proc/timer_list",
    "/proc/timer_stats",
    "/proc/sched_debug",
    "/proc/scsi",
    "/sys/firmware"
    ],
    "ReadonlyPaths": [
    "/proc/bus",
    "/proc/fs",
    "/proc/irq",
    "/proc/sys",
    "/proc/sysrq-trigger"
    ]
    },
    "GraphDriver": {
    "Data": {
    "LowerDir": "/mnt/sda1/var/lib/docker/overlay2/573c6ae1ee7ed0dddf45564c370c7961965ed39959133e6054b9f51ef5e2d78d-init/diff:/mnt/sda1/var/lib/docker/overlay2/939f7b6cffd167550cbc81d068e60e4a2248031194af3a67ca414eece44260ce/diff:/mnt/sda1/var/lib/docker/overlay2/9e6b65a77e9708516171c5f1195c38d45bea35d4eac7a57202531cc664e94dc6/diff:/mnt/sda1/var/lib/docker/overlay2/c9d0aa7a535d312d95df270d65da969d3650b1ad7dc45bb8c085615164a19c83/diff:/mnt/sda1/var/lib/docker/overlay2/5e8ea3fd89d8b142a2ac440f9fb1866ec6966923057a4d825de3a56a43395a80/diff:/mnt/sda1/var/lib/docker/overlay2/7461dce2b458b7096a62e37c7e57ad3051304e68c573efb57154ff3cc9485efc/diff:/mnt/sda1/var/lib/docker/overlay2/68ee55f7ed04a00750ba39e7ed7c4e3695bfe096efcd10eba1a06a5630ba6b68/diff:/mnt/sda1/var/lib/docker/overlay2/3014a59c9e34aca0f583a5c6c6cfff7326639f55212c96d635d3bc2089724c17/diff:/mnt/sda1/var/lib/docker/overlay2/f1155ae8f0ac20d42c102d09c22b053009458bc6b1d1860dee52040bfecd0ad7/diff:/mnt/sda1/var/lib/docker/overlay2/4e32c8dc9eb7bdaecb59828563e605e65b6819d027ca2623e781db8f06d7ec69/diff:/mnt/sda1/var/lib/docker/overlay2/29b6619ec6af0f8394005bd262084ce8c3786d8cdd80aedccca7b1a5fa224edc/diff",
    "MergedDir": "/mnt/sda1/var/lib/docker/overlay2/573c6ae1ee7ed0dddf45564c370c7961965ed39959133e6054b9f51ef5e2d78d/merged",
    "UpperDir": "/mnt/sda1/var/lib/docker/overlay2/573c6ae1ee7ed0dddf45564c370c7961965ed39959133e6054b9f51ef5e2d78d/diff",
    "WorkDir": "/mnt/sda1/var/lib/docker/overlay2/573c6ae1ee7ed0dddf45564c370c7961965ed39959133e6054b9f51ef5e2d78d/work"
    },
    "Name": "overlay2"
    },
    "Mounts": [],
    "Config": {
    "Hostname": "39692a4836cd",
    "Domainname": "",
    "User": "",
    "AttachStdin": false,
    "AttachStdout": false,
    "AttachStderr": false,
    "ExposedPorts": {
    "8080/tcp": {}
    },
    "Tty": false,
    "OpenStdin": false,
    "StdinOnce": false,
    "Env": [
    "PATH=/usr/local/tomcat/bin:/usr/local/openjdk-8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
    "LANG=C.UTF-8",
    "JAVA_HOME=/usr/local/openjdk-8",
    "JAVA_VERSION=8u252",
    "JAVA_BASE_URL=https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_",
    "JAVA_URL_VERSION=8u252b09",
    "CATALINA_HOME=/usr/local/tomcat",
    "TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib",
    "LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib",
    "GPG_KEYS=05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 61B832AC2F1C5A90F0F9B00A1C506407564C17A3 713DA88BE50911535FE716F5208B0AB1D63011C7 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23",
    "TOMCAT_MAJOR=8",
    "TOMCAT_VERSION=8.5.54",
    "TOMCAT_SHA512=dc3ba0183d1e6f6006e5430e91abbc0758bdb719efebea5809f7034c9a28c590a764d8fcf2528a27a98cb86531e94cd9dc5a92cdbcae36e808ced0e5f1c665b8"
    ],
    "Cmd": [
    "catalina.sh",
    "run"
    ],
    "Image": "tomcat:8",
    "Volumes": null,
    "WorkingDir": "/usr/local/tomcat",
    "Entrypoint": null,
    "OnBuild": null,
    "Labels": {}
    },
    "NetworkSettings": {
    "Bridge": "",
    "SandboxID": "6ece37fc03f190194c839f484b5c1a01509f4efaf07594c0e87a58708d80d720",
    "HairpinMode": false,
    "LinkLocalIPv6Address": "",
    "LinkLocalIPv6PrefixLen": ,
    "Ports": {
    "8080/tcp": [
    {
    "HostIp": "127.0.0.1",
    "HostPort": ""
    }
    ]
    },
    "SandboxKey": "/var/run/docker/netns/6ece37fc03f1",
    "SecondaryIPAddresses": null,
    "SecondaryIPv6Addresses": null,
    "EndpointID": "9cf56b0928db163280fa129a0eb03dd5a857d3bccff09f95328d8fb1c5838ede",
    "Gateway": "172.17.0.1",
    "GlobalIPv6Address": "",
    "GlobalIPv6PrefixLen": ,
    "IPAddress": "172.17.0.4",
    "IPPrefixLen": ,
    "IPv6Gateway": "",
    "MacAddress": "02:42:ac:11:00:04",
    "Networks": {
    "bridge": {
    "IPAMConfig": null,
    "Links": null,
    "Aliases": null,
    "NetworkID": "d6a260f49e8de56f2b0cc2b2fad20bd921565525f4e54034d17eed669b596dc4",
    "EndpointID": "9cf56b0928db163280fa129a0eb03dd5a857d3bccff09f95328d8fb1c5838ede",
    "Gateway": "172.17.0.1",
    "IPAddress": "172.17.0.4",
    "IPPrefixLen": ,
    "IPv6Gateway": "",
    "GlobalIPv6Address": "",
    "GlobalIPv6PrefixLen": ,
    "MacAddress": "02:42:ac:11:00:04",
    "DriverOpts": null
    }
    }
    }
    }
    ] # 这是一个停止运行的 tomcat9
    $ docker inspect 9435318c06ca
    [
    {
    "Id": "9435318c06cac456ae99efbb78af5ee132512d4e57ef6b64884ed3b247d2eb49",
    "Created": "2020-05-09T03:05:44.952681404Z",
    "Path": "catalina.sh",
    "Args": [
    "run"
    ],
    "State": {
    "Status": "exited",
    "Running": false,
    "Paused": false,
    "Restarting": false,
    "OOMKilled": false,
    "Dead": false,
    "Pid": ,
    "ExitCode": ,
    "Error": "",
    "StartedAt": "2020-05-09T03:05:47.484205141Z",
    "FinishedAt": "2020-05-09T03:07:33.953054485Z"
    },
    "Image": "sha256:927899a31456255c1e1a73b97d9a94451c4fcffedab4e0cf18b1c6c4fe4b84ff",
    "ResolvConfPath": "/mnt/sda1/var/lib/docker/containers/9435318c06cac456ae99efbb78af5ee132512d4e57ef6b64884ed3b247d2eb49/resolv.conf",
    "HostnamePath": "/mnt/sda1/var/lib/docker/containers/9435318c06cac456ae99efbb78af5ee132512d4e57ef6b64884ed3b247d2eb49/hostname",
    "HostsPath": "/mnt/sda1/var/lib/docker/containers/9435318c06cac456ae99efbb78af5ee132512d4e57ef6b64884ed3b247d2eb49/hosts",
    "LogPath": "/mnt/sda1/var/lib/docker/containers/9435318c06cac456ae99efbb78af5ee132512d4e57ef6b64884ed3b247d2eb49/9435318c06cac456ae99efbb78af5ee132512d4e57ef6b64884ed3b247d2eb49-json.log",
    "Name": "/beautiful_brahmagupta",
    "RestartCount": ,
    "Driver": "overlay2",
    "Platform": "linux",
    "MountLabel": "",
    "ProcessLabel": "",
    "AppArmorProfile": "",
    "ExecIDs": null,
    "HostConfig": {
    "Binds": null,
    "ContainerIDFile": "",
    "LogConfig": {
    "Type": "json-file",
    "Config": {}
    },
    "NetworkMode": "default",
    "PortBindings": {},
    "RestartPolicy": {
    "Name": "no",
    "MaximumRetryCount":
    },
    "AutoRemove": false,
    "VolumeDriver": "",
    "VolumesFrom": null,
    "CapAdd": null,
    "CapDrop": null,
    "Capabilities": null,
    "Dns": [],
    "DnsOptions": [],
    "DnsSearch": [],
    "ExtraHosts": null,
    "GroupAdd": null,
    "IpcMode": "shareable",
    "Cgroup": "",
    "Links": null,
    "OomScoreAdj": ,
    "PidMode": "",
    "Privileged": false,
    "PublishAllPorts": false,
    "ReadonlyRootfs": false,
    "SecurityOpt": null,
    "UTSMode": "",
    "UsernsMode": "",
    "ShmSize": ,
    "Runtime": "runc",
    "ConsoleSize": [
    , ],
    "Isolation": "",
    "CpuShares": ,
    "Memory": ,
    "NanoCpus": ,
    "CgroupParent": "",
    "BlkioWeight": ,
    "BlkioWeightDevice": [],
    "BlkioDeviceReadBps": null,
    "BlkioDeviceWriteBps": null,
    "BlkioDeviceReadIOps": null,
    "BlkioDeviceWriteIOps": null,
    "CpuPeriod": ,
    "CpuQuota": ,
    "CpuRealtimePeriod": ,
    "CpuRealtimeRuntime": ,
    "CpusetCpus": "",
    "CpusetMems": "",
    "Devices": [],
    "DeviceCgroupRules": null,
    "DeviceRequests": null,
    "KernelMemory": ,
    "KernelMemoryTCP": ,
    "MemoryReservation": ,
    "MemorySwap": ,
    "MemorySwappiness": null,
    "OomKillDisable": false,
    "PidsLimit": null,
    "Ulimits": null,
    "CpuCount": ,
    "CpuPercent": ,
    "IOMaximumIOps": ,
    "IOMaximumBandwidth": ,
    "MaskedPaths": [
    "/proc/asound",
    "/proc/acpi",
    "/proc/kcore",
    "/proc/keys",
    "/proc/latency_stats",
    "/proc/timer_list",
    "/proc/timer_stats",
    "/proc/sched_debug",
    "/proc/scsi",
    "/sys/firmware"
    ],
    "ReadonlyPaths": [
    "/proc/bus",
    "/proc/fs",
    "/proc/irq",
    "/proc/sys",
    "/proc/sysrq-trigger"
    ]
    },
    "GraphDriver": {
    "Data": {
    "LowerDir": "/mnt/sda1/var/lib/docker/overlay2/d1022de2348d9daa174152acab00a8d4b181a9579fbec8c08cbeaeeda023f529-init/diff:/mnt/sda1/var/lib/docker/overlay2/ae1036a63ca9ba4f7f24311b4a98742542a4a0c623db4a36844c269ff0925ca3/diff:/mnt/sda1/var/lib/docker/overlay2/1cb5cd1038068be5f38b9d916b7e8f34349cb4267c25cea1979bebdd2bd5b4fc/diff:/mnt/sda1/var/lib/docker/overlay2/826902e7bb7426b34ae37cc0e5e7ccaec71a635ad6376325f5e6cdade3673b27/diff:/mnt/sda1/var/lib/docker/overlay2/2af0b175306258e8346f19a844e42334120c8fcd5fbb6acd90ea11faab3c4472/diff:/mnt/sda1/var/lib/docker/overlay2/f7b556e3bfdcbe8dfb81e0c87f20d7ccbc6a65aa023887a32158b8758e3213c5/diff:/mnt/sda1/var/lib/docker/overlay2/68ee55f7ed04a00750ba39e7ed7c4e3695bfe096efcd10eba1a06a5630ba6b68/diff:/mnt/sda1/var/lib/docker/overlay2/3014a59c9e34aca0f583a5c6c6cfff7326639f55212c96d635d3bc2089724c17/diff:/mnt/sda1/var/lib/docker/overlay2/f1155ae8f0ac20d42c102d09c22b053009458bc6b1d1860dee52040bfecd0ad7/diff:/mnt/sda1/var/lib/docker/overlay2/4e32c8dc9eb7bdaecb59828563e605e65b6819d027ca2623e781db8f06d7ec69/diff:/mnt/sda1/var/lib/docker/overlay2/29b6619ec6af0f8394005bd262084ce8c3786d8cdd80aedccca7b1a5fa224edc/diff",
    "MergedDir": "/mnt/sda1/var/lib/docker/overlay2/d1022de2348d9daa174152acab00a8d4b181a9579fbec8c08cbeaeeda023f529/merged",
    "UpperDir": "/mnt/sda1/var/lib/docker/overlay2/d1022de2348d9daa174152acab00a8d4b181a9579fbec8c08cbeaeeda023f529/diff",
    "WorkDir": "/mnt/sda1/var/lib/docker/overlay2/d1022de2348d9daa174152acab00a8d4b181a9579fbec8c08cbeaeeda023f529/work"
    },
    "Name": "overlay2"
    },
    "Mounts": [],
    "Config": {
    "Hostname": "9435318c06ca",
    "Domainname": "",
    "User": "",
    "AttachStdin": true,
    "AttachStdout": true,
    "AttachStderr": true,
    "ExposedPorts": {
    "8080/tcp": {}
    },
    "Tty": true,
    "OpenStdin": true,
    "StdinOnce": true,
    "Env": [
    "PATH=/usr/local/tomcat/bin:/usr/local/openjdk-11/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
    "LANG=C.UTF-8",
    "JAVA_HOME=/usr/local/openjdk-11",
    "JAVA_VERSION=11.0.7",
    "JAVA_BASE_URL=https://github.com/AdoptOpenJDK/openjdk11-upstream-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_",
    "JAVA_URL_VERSION=11.0.7_10",
    "CATALINA_HOME=/usr/local/tomcat",
    "TOMCAT_NATIVE_LIBDIR=/usr/local/tomcat/native-jni-lib",
    "LD_LIBRARY_PATH=/usr/local/tomcat/native-jni-lib",
    "GPG_KEYS=05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 61B832AC2F1C5A90F0F9B00A1C506407564C17A3 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23",
    "TOMCAT_MAJOR=9",
    "TOMCAT_VERSION=9.0.34",
    "TOMCAT_SHA512=9cb32f8807c0e8d2457d52ac032bb496ae7921e1ea0a0c8e6082bf8da60bb57c317a3f2376589962123dd803fdd2816ff960339cb851d9859b2241165fbc278e"
    ],
    "Cmd": [
    "catalina.sh",
    "run"
    ],
    "Image": "tomcat",
    "Volumes": null,
    "WorkingDir": "/usr/local/tomcat",
    "Entrypoint": null,
    "OnBuild": null,
    "Labels": {}
    },
    "NetworkSettings": {
    "Bridge": "",
    "SandboxID": "7223237e6487cd1bed261dc47e0dfdd0860fbba55c1aea97bdb105f1de9aeb01",
    "HairpinMode": false,
    "LinkLocalIPv6Address": "",
    "LinkLocalIPv6PrefixLen": ,
    "Ports": {},
    "SandboxKey": "/var/run/docker/netns/7223237e6487",
    "SecondaryIPAddresses": null,
    "SecondaryIPv6Addresses": null,
    "EndpointID": "",
    "Gateway": "",
    "GlobalIPv6Address": "",
    "GlobalIPv6PrefixLen": ,
    "IPAddress": "",
    "IPPrefixLen": ,
    "IPv6Gateway": "",
    "MacAddress": "",
    "Networks": {
    "bridge": {
    "IPAMConfig": null,
    "Links": null,
    "Aliases": null,
    "NetworkID": "cddf9f45df5a57ba7491b78441ebe65bb91c8b1a84c32d9ae1d055b9975eed65",
    "EndpointID": "",
    "Gateway": "",
    "IPAddress": "",
    "IPPrefixLen": ,
    "IPv6Gateway": "",
    "GlobalIPv6Address": "",
    "GlobalIPv6PrefixLen": ,
    "MacAddress": "",
    "DriverOpts": null
    }
    }
    }
    }
    ]

    查看容器内部细节

  • 操纵容器
    # 指定【容器id】、或者【容器名称】
    docker attach myCent
    docker attach de04fcc86f00

    返回容器 attach

    docker exec myCent w
    docker exec myCent ps -ef
    docker exec myCent ip ad li # 通过 exec 实现 attach 返回容器的效果
    docker exec -t myCent /bin/bash

    执行 容器内部命令 exec

  • 创建新的镜像

    docker CONTAINER
    
    docker CONTAINER [REPOSITORY[:TAG]]
    
    docker commit [-m "Commit message"] [-a "author string"] CONTAINER [REPOSITORY[:TAG]]

    创建新镜像语法

    $ docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    de04fcc86f00 centos: "/bin/bash" hours ago Up About an hour myCent # 从容器开始,创建我自己的【新镜像】
    $ docker commit -m "我自己创建的镜像" -a "argor" de04fcc86f00 argor_centos:
    sha256:caa90c434aef5c4503abc6f0627fa6d4ad1456c94f86e6c6b688fa9a08bad556 $ docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    argor_centos caa90c434aef seconds ago 237MB
    centos b5b4d78bc90c days ago 203MB
    centos 470671670cac months ago 237MB
    centos latest 470671670cac months ago 237MB

    创建容器实例

  • 容器数据卷

    #默认就是 rw
    docker run -it -v /data01:/data01 centos # ro
    docker run -it -v /data02:/data02:ro centos

    命令行方式创建

    $ cat mydocker/dockerfile
    FROM centos
    VOLUME ["/DATA01","/DATA02","/DATA03"]
    CMD echo "docker said that welcome argor."
    CMD /bin/bash $ docker build -f mydocker/dockerfile -t argor/centos: . $ docker images argor/centos
    REPOSITORY TAG IMAGE ID CREATED SIZE
    argor/centos 67716c343a7b minutes ago 203MB $ docker run -it 67716c343a7b /bin/bash [root@b09f60a15446 /]# ls /
    DATA01 DATA02 DATA03 anaconda-post.log bin dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

    使用dockersfile创建一个新的镜像

  • 数据卷容器
    docker run -it --name wonderful_swirles argor/demo
    docker run -it --name again --volumes-from wonderful_swirles argor/demo

    volumes-from

Docker .