Docker 安装 (一)

Docker 概述

Docker 安装

  • 官方安装文档
  • https://docs.docker.com/engine/install/centos/
# 卸载
sudo yum remove docker \
>                   docker-client \
>                   docker-client-latest \
>                   docker-common \
>                   docker-latest \
>                   docker-latest-logrotate \
>                   docker-logrotate \
>                   docker-engine


# 安装必备安装包
sudo yum install -y yum-utils

# 设置安装镜像,这里设置的是国外镜像,如果是国内可以搜索阿里云镜像
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
# 安装docker最新版本
 sudo yum install docker-ce docker-ce-cli containerd.io
 
# 查看docker是否安装成功
docker --version

#启动docker
sudo systemctl start docker

#运行helloworld
sudo docker run hello-world
Unable to find image 'hello-world:latest' locally 【本地不存在hello-world镜像】
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete 【去仓库拉去镜像】
Digest: sha256:5122f6204b6a3596e048758cabba3c46b1c937a46b5be6225b835d091b90e46c
Status: Downloaded newer image for hello-world:latest

Hello from Docker! 【出现表示运行成功】
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
  • 卸载Docker
# 卸载docker 服务、客户端、容器等
sudo yum remove docker-ce docker-ce-cli containerd.io

# 删除镜像、自定义配置等
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
  • Note如果想安装Docker特定版本参考如下
#查看docker 相关版本
yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64            3:20.10.6-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.6-3.el7                    @docker-ce-stable
docker-ce.x86_64            3:20.10.5-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.4-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.3-3.el7                    docker-ce-stable

#选择自建想要的版本
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
#如:
sudo yum install docker-ce-20.10.5 docker-ce-cli-20.10.5 containerd.io
安装错误排查

在Centos 7上安装时,有的时候会出现 == Requires: fuse-overlayfs >= 0.7 error while installing docker in RHEL-7.== 这样的错误。可以通过修改/etc/yum.repos.d/docker-ce.repo文件解决。

  • 在/etc/yum.repos.d/docker-ce.repo文件头部加入如下内容
[centos-extras]
name=Centos extras - $basearch
baseurl=http://mirror.centos.org/centos/7/extras/x86_64
enabled=1
gpgcheck=0
  • 然后在运行安装docker的命名
sudo yum install docker-ce docker-ce-cli containerd.io

参考:https://stackoverflow.com/questions/65878769/cannot-install-docker-in-a-rhel-server

Docker 常用命令

https://docs.docker.com/engine/reference/commandline

帮助命令

#查看版本
docker --version

#docker 系统信息
docker info

#帮助文档
docker --help

镜像命令

  • 查看所有的镜像
#查看所有镜像,镜像名称、标签(版本)、IMAGE ID、镜像创建时间、大小
docker impages 
# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
mysql         5.7.34    2c9028880e58   35 hours ago   447MB
hello-world   latest    d1165f221234   2 months ago   13.3kB

#查看所有镜像
docker images -a

#只显示所有镜像的id
docker images -aq

#根据名字过滤镜像
# docker images mysql
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        5.7.34    2c9028880e58   35 hours ago   447MB
mysql        latest    c0cdc95609f1   35 hours ago   556MB

#根据名字和版本过滤镜像
docker images mysql:5.7.34
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
mysql        5.7.34    2c9028880e58   35 hours ago   447MB
  • 查看docker官方已经支持的镜像
  1. 通过官方文档搜索:
    https://hub.docker.com/search?q=mysql&type=image

  2. 通过命令搜索

#搜索mysql镜像
docker search mysql

拉取镜像

#拉取Mysql镜像,版本(tag)为5.7.34,如果不制定默认拉取latest版本
# docker pull name:[tag]
#下载最新版本mysql镜像
docker pull mysql
#下载5.7.34版本的镜像,这个版本必须在docker hub 中能够查询到
docker pull mysql:5.7.34

删除镜像

# 删除制定镜像id
docker rmi 镜像id

# 删除一堆指定镜像id
docker rmi id1 id2 id3

# 删除所有镜像, docker images -aq 表示查询出来的值作为参数传递
docker rmi $(docker images -aq)

容器命令

说明:我们有了镜像才可以启动容器,下面的例子是我们 跑一个centos的容器

  • 下载 centos 镜像
docker pull centos
  • 新建并启动容器
docker run [可选参数] image

#参数说明
--name="Name" 制定容器名字 tomcat01 tomcat02
-d 指定通过后台运行方式
-it 使用交互方式运行,进入容器查看内容
-p 制定容器端口 -p 8081:8080
  -p ip:主机端口:容器端口
  -p 主机端口:容器端口 (最常用方式)
  -p 容器端口
  容器端口
-P 指定大P,表示随机指定端口  
  • 测试
#启动一个centos容器,命名为mycentos02, it进入交互模式,centos:[tag,可选]指定镜像名称,并以 /bin/bash 进入一个终端
[root@vmnode01 ~ 21:10:05]$ docker run --name="mycentos02" -it centos:latest /bin/bash

#可以看见我们进入了mycentos02这个容器中,e2d5ff619c66为容器ID,已经不是我们的linux的交互界面了
[root@e2d5ff619c66 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@e2d5ff619c66 /]#

#通过exit 退出容器,容器并停止运行
exit

# 退出容器,但是容器继续运行
[root@vmnode01 ~ 21:17:24]$ docker run --name='centos03' -it centos /bin/bash

#进入交互模式洪,运行 Ctrl + p + q 退出但是容器继续运行
[root@b4e75224b6cc /] ctrl + p + q
[root@vmnode01 ~ 21:18:01]$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED              STATUS                     PORTS     NAMES
b4e75224b6cc   centos          "/bin/bash"   8 seconds ago        Up 7 seconds                         centos03
16fe922eb7b7   centos          "/bin/bash"   55 seconds ago       Up 54 seconds                        busy_cannon
a3139f15e364   centos          "/bin/"       About a minute ago   Created                              crazy_jepsen
e2d5ff619c66   centos:latest   "/bin/bash"   7 minutes ago        Exited (0) 3 minutes ago             mycentos02
b0005ce61484   centos          "/bin/bash"   8 minutes ago        Exited (0) 8 minutes ago             mycentos

# 退出后再进入容器
[root@vmnode01 ~ 21:33:08]$ docker exec -it b4e75224b6cc /bin/bash
[root@b4e75224b6cc /]#
  • 查看容器状态
# 查看正在运行的容器
[root@vmnode01 ~ 21:14:19]$ docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

# 查看所有容器包括退出的
[root@vmnode01 ~ 21:14:15]$ docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED         STATUS                     PORTS     NAMES
e2d5ff619c66   centos:latest   "/bin/bash"   4 minutes ago   Exited (0) 3 seconds ago             mycentos02
b0005ce61484   centos          "/bin/bash"   4 minutes ago   Exited (0) 4 minutes ago             mycentos

# 查看所有容器,但是只显示ID
[root@vmnode01 ~ 21:16:24]$ docker ps -aq
e2d5ff619c66
b0005ce61484
  • 删除容器
#删除指定容器id,加-f表示强制删除,否则只能删除已经停止运行的容器
docker rm 容器id

#删除所有已经停止运行的容器
docker rm $(docker ps -aq)
docker ps -a|xargs docker rm 

#删除所有的容器, -f表示强制删除,包括正在运行容器
docker rm -f $(docker ps -aq)
docker ps -a|xargs docker rm -f

#查看容器
docker ps -a
  • 启动停止容器
#通过 docker ps -a,查看容器的状态后,我们可以通过下面的指令启动、重启、停止、kill容器
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id

常用其他命令

  • 后台启动容器

通过-d 后台运行的容器,里面一定要有常驻程序运行,否则程序自动退出

#通过-d后台启动centos容器,但是由于此容器没有一直运行的内容,所以起来后就直接退出了
[root@vmnode01 ~ 22:00:38]$ docker run --name="test_backrun_fail" -d centos
e23c7791b23033e3fde7332a3484f1f37641bc379983d26f69eae9f435bbb6a7

#查看起来后直接退出了
[root@vmnode01 ~ 22:01:02]$ docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS                     PORTS     NAMES
e23c7791b230   centos    "/bin/bash"   5 seconds ago   Exited (0) 4 seconds ago             test_backrun_fail

#通过-d后台启动centos容器,同时要求在容器中运行一段死循环程序:每秒钟输出一段话,所以此容器哪怕后台运行也不会退出
[root@vmnode01 ~ 22:01:10]$ docker run --name="test_backrun_and_log_success" -d centos /bin/sh -c "while true;do echo 'test001'; sleep 1;done"
3902a1559361aebf2f3245cdfc2b1f773c7a70b4ede71413974595a4490dd4ec

[root@vmnode01 ~ 22:01:45]$ docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS                      PORTS     NAMES
3902a1559361   centos    "/bin/sh -c 'while t…"   3 seconds ago    Up 2 seconds                          test_backrun_and_log_success
e23c7791b230   centos    "/bin/bash"              47 seconds ago   Exited (0) 46 seconds ago             test_backrun_fail

  • 查看容器中的日志
# 查看Logs命令帮助文档
[root@vmnode01 ~ 22:10:08]$ docker logs --help

[root@vmnode01 ~ 22:10:08]$ docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS                      PORTS     NAMES
3902a1559361   centos    "/bin/sh -c 'while t…"   9 minutes ago    Up 9 minutes                          test_backrun_and_log_success
e23c7791b230   centos    "/bin/bash"              10 minutes ago   Exited (0) 10 minutes ago             test_backrun_fail

# -f 日志输出其实位置, --tail 5表示从最后5行日志显示, -t 表示显示时间,3902a1559361 为容器ID 
[root@vmnode01 ~ 22:10:08]$ docker logs -f --tail 5 3902a1559361 -t
2021-05-13T21:09:21.349513027Z test001
2021-05-13T21:09:22.353165964Z test001
2021-05-13T21:09:23.355794199Z test001
2021-05-13T21:09:24.360486122Z test001
2021-05-13T21:09:25.363866000Z test001
2021-05-13T21:09:26.365902668Z test001
  • 查看容器内的进程
#查看某个容器内的进程: docker top 容器ID
[root@vmnode01 ~ 22:15:58]$ docker top 3902a1559361
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                21020               21000               0                   22:01               ?                   00:00:00            /bin/sh -c while true;do echo 'test001'; sleep 1;done
root                22042               21020               0                   22:16               ?                   00:00:00            /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1

#查看某个容器的详细信息

# 查看帮助
[root@vmnode01 ~ 22:20:00]$ docker inspect --help

Usage:  docker inspect [OPTIONS] NAME|ID [NAME|ID...]

Return low-level information on Docker objects

Options:
  -f, --format string   Format the output using the given Go template
  -s, --size            Display total file sizes if the type is container
      --type string     Return JSON for specified type

#查看某个容器的所有详细信息
[root@vmnode01 ~ 22:20:04]$ docker inspect 3902a1559361
[
    {
        "Id": "3902a1559361aebf2f3245cdfc2b1f773c7a70b4ede71413974595a4490dd4ec",
        "Created": "2021-05-13T21:01:45.449473154Z",
        "Path": "/bin/sh",
        "Args": [
            "-c",
            "while true;do echo 'test001'; sleep 1;done"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 21020,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2021-05-13T21:01:45.713927086Z",
            "FinishedAt": "0001-01-01T00:00:00Z"
        },
        "Image": "sha256:300e315adb2f96afe5f0b2780b87f28ae95231fe3bdd1e16b9ba606307728f55",
        "ResolvConfPath": "/var/lib/docker/containers/3902a1559361aebf2f3245cdfc2b1f773c7a70b4ede71413974595a4490dd4ec/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/3902a1559361aebf2f3245cdfc2b1f773c7a70b4ede71413974595a4490dd4ec/hostname",
        "HostsPath": "/var/lib/docker/containers/3902a1559361aebf2f3245cdfc2b1f773c7a70b4ede71413974595a4490dd4ec/hosts",
        "LogPath": "/var/lib/docker/containers/3902a1559361aebf2f3245cdfc2b1f773c7a70b4ede71413974595a4490dd4ec/3902a1559361aebf2f3245cdfc2b1f773c7a70b4ede71413974595a4490dd4ec-json.log",
        "Name": "/test_backrun_and_log_success",
        "RestartCount": 0,
        "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": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "host",
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": [],
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "KernelMemory": 0,
            "KernelMemoryTCP": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": false,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "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": "/var/lib/docker/overlay2/857f0b9d592c32786310503e1d02127d9e026dfeaa3adc467f0c6eeaaf1787a3-init/diff:/var/lib/docker/overlay2/9ad5435780592cf497f96d1486f741d4fd88e41a0121f9568bf7a1d5fc1731fe/diff",
                "MergedDir": "/var/lib/docker/overlay2/857f0b9d592c32786310503e1d02127d9e026dfeaa3adc467f0c6eeaaf1787a3/merged",
                "UpperDir": "/var/lib/docker/overlay2/857f0b9d592c32786310503e1d02127d9e026dfeaa3adc467f0c6eeaaf1787a3/diff",
                "WorkDir": "/var/lib/docker/overlay2/857f0b9d592c32786310503e1d02127d9e026dfeaa3adc467f0c6eeaaf1787a3/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [],
        "Config": {
            "Hostname": "3902a1559361",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "while true;do echo 'test001'; sleep 1;done"
            ],
            "Image": "centos",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {
                "org.label-schema.build-date": "20201204",
                "org.label-schema.license": "GPLv2",
                "org.label-schema.name": "CentOS Base Image",
                "org.label-schema.schema-version": "1.0",
                "org.label-schema.vendor": "CentOS"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "c52d41e27b007a6e34e3c4be7d6be44f9d95cf1765e3b3018b844c23eb777aca",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {},
            "SandboxKey": "/var/run/docker/netns/c52d41e27b00",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "3292c23f7a393725d652aed2c2430db1bc3a65ba9cba9ccf8727475b3774c023",
            "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": "51605dd1c778b5e0cef1715c4e67f86b55bf35724c1c942d81ec33ee799b4c4c",
                    "EndpointID": "3292c23f7a393725d652aed2c2430db1bc3a65ba9cba9ccf8727475b3774c023",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:11:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]

#查看某个容器的部分详细信息,如日志路径
#docker inspect --format='{{.LogPath}}' $INSTANCE_ID
[root@vmnode01 ~ 22:23:40]$ docker inspect --format='{{.LogPath}}' 3902a1559361
/var/lib/docker/containers/3902a1559361aebf2f3245cdfc2b1f773c7a70b4ede71413974595a4490dd4ec/3902a1559361aebf2f3245cdfc2b1f773c7a70b4ede71413974595a4490dd4ec-json.log

#docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID

  • 进入正在运行的容器
#方式一:使用exec命令进入容器,-it表示以交互式的方式,进入后使用的命令/bin/bash 打开一个新的终端

#进入3902a1559361 容器
[root@vmnode01 ~ 22:25:26]$ docker exec -it 3902a1559361 /bin/bash

#以后的操作都是在容器内操作
[root@3902a1559361 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

#查看容器中的所有进程
[root@3902a1559361 /]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 21:01 ?        00:00:00 /bin/sh -c while true;do echo 'test001'; sleep 1;done
root       1640      0  0 21:29 pts/0    00:00:00 /bin/bash
root       1684      1  0 21:29 ?        00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1
root       1685   1640  0 21:29 pts/0    00:00:00 ps -ef

#方式二: docker attach containerID
#方式二这种方式进入容器还是进入的容器当时启动时启动的终端是同一个终端
[root@vmnode01 ~ 22:45:23]$ docker attach 95bfc48fe649
[root@95bfc48fe649 ~]# ls
a.java	anaconda-ks.cfg  anaconda-post.log  original-ks.cfg
  • 从容器汇总拷贝文件到主机
#以交互式方式启动容器 centos_cp
[root@vmnode01 ~ 22:56:02]$ docker run -it --name="centos_cp" centos /bin/bash
[root@e28ea3f5ecce /]#

#容器内创建文件
[root@e28ea3f5ecce /]# pwd
/
[root@e28ea3f5ecce /]# cd /home
[root@e28ea3f5ecce home]# touch a.java b.java
[root@e28ea3f5ecce home]# ls
a.java	b.java

#退出容器但是容器继续运行
ctrl + p + q

#将容器中的/home/a.java文件拷贝到主机 /root目录下
[root@vmnode01 ~ 22:59:20]$ docker cp e28ea3f5ecce:/home/a.java /root/
[root@vmnode01 ~ 22:59:27]$ ls
a.java  anaconda-ks.cfg  polysh  polysh-0.4  polysh-0.4.tar.gz


#停止容器运行,容器停止运行后仍然可以拷贝容器中内容
[root@vmnode01 ~ 22:59:50]$ docker stop e28ea3f5ecce
e28ea3f5ecce
[root@vmnode01 ~ 23:00:01]$ docker ps -a
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS                     PORTS     NAMES
e28ea3f5ecce   centos    "/bin/bash"              3 minutes ago   Exited (0) 4 seconds ago             centos_cp
91c67707a906   centos    "--name=centos_cp /b…"   4 minutes ago   Created                              vigorous_carver

#将容器中的/home/b.java文件拷贝到主机 /root目录下
[root@vmnode01 ~ 23:00:06]$ docker cp e28ea3f5ecce:/home/b.java /root/
[root@vmnode01 ~ 23:00:18]$ ls
a.java  anaconda-ks.cfg  b.java  polysh  polysh-0.4  polysh-0.4.tar.gz

Docker 可视化

  • portainer

Docker 制作自己的镜像

Docker 网络原理

Docker 镜像

容器数据卷

DockerFile

Docker 网络原理

IDEA 整合Docker

Docker Compose

Docker Swarm

Docker jekins

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值