当前位置: 首页 > news >正文

华企立方网站四川网站建设的公司排名

华企立方网站,四川网站建设的公司排名,wordpress 默认分页,有域名自己怎么做网站目录 1.为什么有docker ? 2.Docker 的核心概念 3.容器与虚拟机比较 3.1传统的虚拟化技术 3.2容器技术 3.3Docker容器的有什么作用#xff1f; 3.4应用案例 4. docker 安装下载 4.1CentOS Docker 安装 4.2 Docker的基本组成 #xff1f;#xff08;面试#xff09…目录 1.为什么有docker ? 2.Docker 的核心概念 3.容器与虚拟机比较 3.1传统的虚拟化技术 3.2容器技术 3.3Docker容器的有什么作用 3.4应用案例 4. docker 安装下载  4.1CentOS Docker 安装 4.2 Docker的基本组成 面试 镜像Image 容器(container) 仓库Repository 5.docker 架构图  5.1 整体架构及底层通信原理 6.CentOS7安装Docker 7. 阿里云镜像加速  run 执行了什么   底层原理 面试题 为什么Docker会比VM虚拟机快 8.Docker常用命令  启动交互式容器(前台命令行) 列出当前所有正在运行的容器 启动已停止运行的容器  重要 查看容器内部细节  进入正在运行的容器并以命令行交互 从容器内拷贝文件到主机上  导入和导出容器  案例  docker export 容器ID 文件名.tar cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号  1.为什么有docker ? 假定您在开发一个尚硅谷的谷粒商城您使用的是一台笔记本电脑而且您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。此外您的企业还拥有标准化的测试和生产环境且具有自身的配置和一系列支持文件。您希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销。请问 您要如何确保应用能够在这些环境中运行和通过质量检测并且在部署过程中不出现令人头疼的版本、配置问题也无需重新编写代码和进行故障修复   答案就是使用容器。Docker之所以发展如此迅速也是因为它对此给出了一个标准化的解决方案-----系统平滑移植容器虚拟化技术。  环境配置相当麻烦换一台机器就要重来一次费力费时。很多人想到能不能从根本上解决问题软件可以带环境安装也就是说安装的时候把原始环境一模一样地复制过来。开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。 之前在服务器配置一个应用的运行环境要安装各种软件就拿尚硅谷电商项目的环境来说Java/RabbitMQ/MySQL/JDBC驱动包等。安装和配置这些东西有多麻烦就不说了它还不能跨平台。假如我们是在 Windows 上安装的这些环境到了 Linux 又得重新装。况且就算不跨操作系统换另一台同样操作系统的服务器要移植应用也是非常麻烦的。 传统上认为软件编码开发/测试结束后所产出的成果即是程序或是能够编译执行的二进制字节码等(java为例)。而为了让这些程序可以顺利执行开发团队也得准备完整的部署文件让维运团队得以部署应用程式开发需要清楚的告诉运维部署团队用的全部配置文件所有软件环境。不过即便如此仍然常常发生部署失败的状况。Docker的出现使得Docker得以打破过去「程序即应用」的观念。透过镜像(images)将作业系统核心除外运作应用程式所需要的系统环境由下而上打包达到应用程式跨平台间的无缝接轨运作。 2.Docker 的核心概念 Docker是基于Go语言实现的云开源项目。 Docker的主要目标是“BuildShip and Run Any App,Anywhere”也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理使用户的APP可以是一个WEB应用或数据库应用等等及其运行环境能够做到“一次镜像处处运行”。 解决了运行环境和配置问题的软件容器方便做持续集成并有助于整体发布的容器虚拟化技术。  Linux容器技术的出现就解决了这样一个问题而 Docker 就是在它的基础上发展过来的。将应用打成镜像通过镜像成为运行在Docker容器上面的实例而 Docker容器在任何操作系统上都是一致的这就实现了跨平台、跨服务器。只需要一次配置好环境换到别的机子上就可以一键部署好大大简化了操作。 3.容器与虚拟机比较 3.1传统的虚拟化技术 虚拟机virtual machine就是带环境安装的一种解决方案。 它可以在一种操作系统里面运行另一种操作系统比如在Windows10系统里面运行Linux系统CentOS7。应用程序对此毫无感知因为虚拟机看上去跟真实系统一模一样而对于底层系统来说虚拟机就是一个普通文件不需要了就删掉对其他部分毫无影响。这类虚拟机完美的运行了另一套系统能够使应用程序操作系统和硬件三者之间的逻辑不变。   Win10    VMWare    Centos7    各种cpu、内存网络额配置各种软件    虚拟机实例 虚拟机的缺点1    资源占用多     2    冗余步骤多  3    启动慢 3.2容器技术 由于前面虚拟机存在某些缺点Linux发展出了另一种虚拟化技术 Linux容器(Linux Containers缩写为 LXC) Linux容器是与系统其他部分隔离开的一系列进程从另一个镜像运行并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项因而在从开发到测试再到生产的整个过程中它都具有可移植性和一致性。   Linux 容器不是模拟一个完整的操作系统而是对进程进行隔离。有了容器就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同不需要捆绑一整套操作系统只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。        由于前面虚拟机存在某些缺点Linux发展出了另一种虚拟化技术 Linux容器(Linux Containers缩写为 LXC) Linux容器是与系统其他部分隔离开的一系列进程从另一个镜像运行并由该镜像提供支持进程所需的全部文件。容器提供的镜像包含了应用的所有依赖项因而在从开发到测试再到生产的整个过程中它都具有可移植性和一致性。   Linux 容器不是模拟一个完整的操作系统而是对进程进行隔离。有了容器就可以将软件运行所需的所有资源打包到一个隔离的容器中。容器与虚拟机不同不需要捆绑一整套操作系统只需要软件工作所需的库资源和设置。系统因此而变得高效轻量并保证部署在任何环境中的软件都能始终如一地运行。 Docker 容器是操作系统层面实现的虚拟化直接复用本地操作系统而传统虚拟机是硬件层面实现虚拟化。与传统的虚拟机对比有启动速度快占用空间小。 比较了 Docker 和传统虚拟化方式的不同之处 *传统虚拟机技术是虚拟出一套硬件后在其上运行一个完整操作系统在该系统上再运行所需应用进程 *容器内的应用进程直接运行于宿主的内核容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。 * 每个容器之间互相隔离每个容器有自己的文件系统 容器之间进程不会相互影响能区分计算资源。   3.3Docker容器的有什么作用 一次构建、随处运行 更快速的交付和应用 传统的应用开发完成后需要提供一堆安装程序和配置说明文档安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件在正式生产环境加载镜像并运行即可应用安装配置在镜像里已经内置好大大节省部署配置和测试验证时间。 更便捷的升级和扩缩容 随着微服务架构和Docker的发展大量的应用会通过微服务方式架构应用的开发构建将变成搭乐高积木一样每个Docker容器将变成一块“积木”应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时可通过镜像运行新的容器进行快速扩容使应用系统的扩容从原先的天级变成分钟级甚至秒级。更简单的系统运维 应用容器化运行后生产环境运行的应用可与开发、测试环境的应用高度一致容器会将应用程序相关的环境和状态完全封装起来不会因为底层基础架构和操作系统的不一致性给应用带来影响产生新的BUG。当出现程序异常时也可以通过测试环境的相同容器进行快速定位和修复。 更高效的计算资源利用  Docker是内核级虚拟化其不像传统的虚拟化技术一样需要额外的Hypervisor支持所以在一台物理机上可以运行很多个容器实例可大大提升物理服务器的CPU和内存的利用率。 Docker 借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地Docker将这个模型运用到自己设计中唯一不同是集装箱运输的是货物而是Docker运输软件。 3.4应用案例 微博 美团 4. docker 安装下载  docker官网http://www.docker.com Docker Hub官网: https://hub.docker.com/ 4.1CentOS Docker 安装 前提条件 目前CentOS 仅发行版本中的内核支持 Docker。Docker 运行在CentOS 7 (64-bit)上 要求系统为64位、Linux系统内核版本为 3.8以上这里选用Centos7.x 查看自己的内核 uname命令用于打印当前系统相关信息内核版本号、硬件架构、主机名称和操作系统类型等。 4.2 Docker的基本组成 面试 镜像Image Docker 镜像Image就是一个只读的模板。镜像可以用来创建 Docker 容器一个镜像可以创建很多容器。 它也相当于是一个root文件系统。比如官方镜像 centos:7 就包含了完整的一套 centos:7 最小系统的 root 文件系统。 相当于容器的“源代码”docker镜像文件类似于Java的类模板而docker容器实例类似于java中new出来的实例对象。 容器(container) 1 从面向对象角度Docker 利用容器Container独立运行的一个或一组应用应用程序或服务运行在容器里面容器就类似于一个虚拟化的运行环境容器是用镜像创建的运行实例。就像是Java中的类和实例对象一样镜像是静态的定义容器是镜像运行时的实体。容器为镜像提供了一个标准的和隔离的运行环境它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台 2 从镜像容器角度 可以把容器看做是一个简易版的 Linux 环境包括root用户权限、进程空间、用户空间和网络空间等和运行在其中的应用程序。 仓库Repository 仓库Repository是集中存放镜像文件的场所。   类似于 Maven仓库存放各种jar包的地方 github仓库存放各种git项目的地方 Docker公司提供的官方registry被称为Docker Hub存放各种镜像模板的地方。   仓库分为公开仓库Public和私有仓库Private两种形式。 最大的公开仓库是 Docker Hub(https://hub.docker.com/) 存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云等 5.docker 架构图  Docker是一个Client-Server结构的系统Docker守护进程运行在主机上 然后通过Socket连接从客户端访问守护进程从客户端接受命令并管理运行在主机上的容器。 容器是一个运行时环境就是我们前面说到的集装箱 5.1 整体架构及底层通信原理 Docker 是一个 C/S 模式的架构后端是一个松耦合架构众多模块各司其职。  6.CentOS7安装Docker Install Docker Engine on CentOS | Docker Docs 1.确定你是CentOS7及以上版本  cat /etc/redhat-release 2.卸载旧版本 3.yum安装gcc相关 yum -y install gcc   yum -y install gcc-c 4.安装需要的软件包 执行命令 yum install -y yum-utils 5. 设置stable镜像仓库 大坑 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 报错 1   [Errno 14] curl#35 - TCP connection reset by peer     2   [Errno 12] curl#35 - Timeout   推荐 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 6.更新yum软件包索引 yum makecache fast 7.安装DOCKER CE yum -y install docker-ce docker-ce-cli containerd.io 官网要求 执行结果  8.启动docker systemctl start docker 9.测试 docker version docker run hello-world 10.卸载 systemctl stop docker yum remove docker-ce docker-ce-cli containerd.io rm -rf /var/lib/docker rm -rf /var/lib/containerd 7. 阿里云镜像加速  https://promotion.aliyun 注册一个属于自己的阿里云账户(可复用淘宝账号) 获得加速器地址连接 登陆阿里云开发者平台 获取加速器地址 粘贴脚本直接执行  mkdir -p /etc/docker tee /etc/docker/daemon.json -EOF {registry-mirrors: [https://aa25jngu.mirror.aliyuncs.com] } EOF或者分步骤都行 mkdir -p /etc/docker vim  /etc/docker/daemon.json {registry-mirrors: [https://自已的编码.mirror.aliyuncs.com] } 重启服务器  systemctl daemon-reload systemctl restart docker 启动Docker后台容器(测试运行 hello-world)  docker run hello-world run 执行了什么   底层原理 面试题 为什么Docker会比VM虚拟机快 (1)docker有着比虚拟机更少的抽象层    由于docker不需要Hypervisor(虚拟机)实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。(2)docker利用的是宿主机的内核,而不需要加载操作系统OS内核    当新建一个容器时,docker不需要和虚拟机一样重新加载一个操作系统内核。进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程是分钟级别的。而docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个docker容器只需要几秒钟。 8.Docker常用命令  有镜像才能创建容器 attach    Attach to a running container                 # 当前 shell 下 attach 连接指定运行镜像build     Build an image from a Dockerfile              # 通过 Dockerfile 定制镜像commit    Create a new image from a container changes   # 提交当前容器为新的镜像cp        Copy files/folders from the containers filesystem to the host path   #从容器中拷贝指定文件或者目录到宿主机中create    Create a new container                        # 创建一个新的容器同 run但不启动容器diff      Inspect changes on a containers filesystem   # 查看 docker 容器变化events    Get real time events from the server          # 从 docker 服务获取容器实时事件exec      Run a command in an existing container        # 在已存在的容器上运行命令export    Stream the contents of a container as a tar archive   # 导出容器的内容流作为一个 tar 归档文件[对应 import ]history   Show the history of an image                  # 展示一个镜像形成历史images    List images                                   # 列出系统当前镜像import    Create a new filesystem image from the contents of a tarball # 从tar包中的内容创建一个新的文件系统映像[对应export]info      Display system-wide information               # 显示系统相关信息inspect   Return low-level information on a container   # 查看容器详细信息kill      Kill a running container                      # kill 指定 docker 容器load      Load an image from a tar archive              # 从一个 tar 包中加载一个镜像[对应 save]login     Register or Login to the docker registry server    # 注册或者登陆一个 docker 源服务器logout    Log out from a Docker registry server          # 从当前 Docker registry 退出logs      Fetch the logs of a container                 # 输出当前容器日志信息port      Lookup the public-facing port which is NAT-ed to PRIVATE_PORT    # 查看映射端口对应的容器内部源端口pause     Pause all processes within a container        # 暂停容器ps        List containers                               # 列出容器列表pull      Pull an image or a repository from the docker registry server   # 从docker镜像源服务器拉取指定镜像或者库镜像push      Push an image or a repository to the docker registry server    # 推送指定镜像或者库镜像至docker源服务器restart   Restart a running container                   # 重启运行的容器rm        Remove one or more containers                 # 移除一个或者多个容器rmi       Remove one or more images       # 移除一个或多个镜像[无容器使用该镜像才可删除否则需删除相关容器才可继续或 -f 强制删除]run       Run a command in a new container              # 创建一个新的容器并运行一个命令save      Save an image to a tar archive                # 保存一个镜像为一个 tar 包[对应 load]search    Search for an image on the Docker Hub         # 在 docker hub 中搜索镜像start     Start a stopped containers                    # 启动容器stop      Stop a running containers                     # 停止容器tag       Tag an image into a repository                # 给源中镜像打标签top       Lookup the running processes of a container   # 查看容器中运行的进程信息unpause   Unpause a paused container                    # 取消暂停容器version   Show the docker version information           # 查看 docker 版本号wait      Block until a container stops, then print its exit code   # 截取容器停止时的退出状态值   这是根本前提(下载一个CentOS或者ubuntu镜像演示) 新建启动容器 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] OPTIONS说明 OPTIONS说明常用有些是一个减号有些是两个减号   --name容器新名字       为容器指定一个名称 -d: 后台运行容器并返回容器ID也即启动守护式容器(后台运行)   -i以交互模式运行容器通常与 -t 同时使用 -t为容器重新分配一个伪输入终端通常与 -i 同时使用 也即启动交互式容器(前台有伪终端等待交互)   -P: 随机端口映射大写P -p: 指定端口映射小写p   启动交互式容器(前台命令行) #使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。docker run -it centos /bin/bash     参数说明 -i: 交互式操作。 -t: 终端。 centos : centos 镜像。 /bin/bash放在镜像名后的是命令这里我们希望有个交互式 Shell因此用的是 /bin/bash。 要退出终端直接输入 exit: 列出当前所有正在运行的容器 docker ps [OPTIONS]   OPTIONS说明 OPTIONS说明常用   -a :列出当前所有正在运行的容器历史上运行过的 -l :显示最近创建的容器。 -n显示最近n个创建的容器。 -q :静默模式只显示容器编号。 退出容器  两种退出方式 启动已停止运行的容器  docker start 容器ID或者容器名 重启容器 docker restart 容器ID或者容器名 停止容器 docker stop 容器ID或者容器名 强制停止容器 docker kill 容器ID或容器名 删除已停止的容器 docker rm 容器ID 一次性删除多个容器实例 docker rm -f $(docker ps -a -q)  docker ps -a -q | xargs docker rm 重要 有镜像才能创建容器 在大部分的场景下我们希望 docker 的服务是在后台运行的 我们可以过 -d 指定容器的后台运行模式。 docker run -d 容器名  #使用镜像centos:latest以后台模式启动一个容器 docker run -d centos   问题然后docker ps -a 进行查看, 会发现容器已经退出很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程. 容器运行的命令如果不是那些一直挂起的命令比如运行toptail就是会自动退出的。   这个是docker的机制问题,比如你的web容器,我们以nginx为例正常情况下, 我们配置启动服务只需要启动响应的service即可。例如service nginx start 但是,这样做,nginx为后台进程模式运行,就导致docker前台没有运行的应用, 这样的容器后台启动后,会立即自杀因为他觉得他没事可做了. 所以最佳的解决方案是,将你要运行的程序以前台进程的形式运行 常见就是命令行模式表示我还有交互操作别中断O(∩_∩)O哈哈~ redis 前后台启动演示case  前台交互式启动 docker run -it redis:6.0.8 后台守护式启动 docker run -d redis:6.0.8 查看容器日志 docker logs 容器ID 查看容器内运行的进程 docker top 容器ID 查看容器内部细节  docker inspect 容器ID [rootlocalhost ~]# docker inspect 6ae5aab74552 [{Id: 6ae5aab7455259e91dd292656412b1920b067396f4de839498a12578f3001771,Created: 2023-08-05T03:37:09.292755933Z,Path: docker-entrypoint.sh,Args: [mysqld],State: {Status: running,Running: true,Paused: false,Restarting: false,OOMKilled: false,Dead: false,Pid: 2304,ExitCode: 0,Error: ,StartedAt: 2023-09-02T01:04:28.947145217Z,FinishedAt: 2023-08-31T23:50:12.875454993Z},Image: sha256:c20987f18b130f9d144c9828df630417e2a9523148930dc3963e9d0dab302a76,ResolvConfPath: /var/lib/docker/containers/6ae5aab7455259e91dd292656412b1920b067396f4de839498a12578f3001771/resolv.conf,HostnamePath: /var/lib/docker/containers/6ae5aab7455259e91dd292656412b1920b067396f4de839498a12578f3001771/hostname,HostsPath: /var/lib/docker/containers/6ae5aab7455259e91dd292656412b1920b067396f4de839498a12578f3001771/hosts,LogPath: /var/lib/docker/containers/6ae5aab7455259e91dd292656412b1920b067396f4de839498a12578f3001771/6ae5aab7455259e91dd292656412b1920b067396f4de839498a12578f3001771-json.log,Name: /mysql,RestartCount: 0,Driver: overlay2,Platform: linux,MountLabel: ,ProcessLabel: ,AppArmorProfile: ,ExecIDs: null,HostConfig: {Binds: [/mydata/mysql/log:/var/log/mysql,/mydata/mysql/data:/var/lib/mysql,/mydata/mysql/conf:/etc/mysql],ContainerIDFile: ,LogConfig: {Type: json-file,Config: {}},NetworkMode: default,PortBindings: {3306/tcp: [{HostIp: ,HostPort: 3306}]},RestartPolicy: {Name: always,MaximumRetryCount: 0},AutoRemove: false,VolumeDriver: ,VolumesFrom: null,ConsoleSize: [30,112],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,Isolation: ,CpuShares: 0,Memory: 0,NanoCpus: 0,CgroupParent: ,BlkioWeight: 0,BlkioWeightDevice: [],BlkioDeviceReadBps: [],BlkioDeviceWriteBps: [],BlkioDeviceReadIOps: [],BlkioDeviceWriteIOps: [],CpuPeriod: 0,CpuQuota: 0,CpuRealtimePeriod: 0,CpuRealtimeRuntime: 0,CpusetCpus: ,CpusetMems: ,Devices: [],DeviceCgroupRules: null,DeviceRequests: null,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/14c9eb5ba3ab0e73b056395eb8cafe75b978687e2caffb2d95129b8d62641b56-init/diff:/var/lib/docker/overlay2/b5eedfe85f35e7fb643f1fe4071749240c162b5a8141627ac0858bf6940e4fcb/diff:/var/lib/docker/overlay2/63987a203225af2bb61731cb63f9cd4b9fa7cf66ff980d19229ac01da02e59cb/diff:/var/lib/docker/overlay2/3dac1c3fdff0d485c97dedce462c5b98bad6d3714d9d8e52cae96fcb1bee0cb7/diff:/var/lib/docker/overlay2/958fc4a5c77fdeed6de75bbe37c3b0818b93261fc1e36e8138239cec937c775b/diff:/var/lib/docker/overlay2/ba39e25042883bc90069b878ef673970f4e52e9faf1c7878a4ae3a7650dfd221/diff:/var/lib/docker/overlay2/c708ce19d5fa49ac85600b61dc20efe11a065d7d660ac8c4ed6557ee28e0031b/diff:/var/lib/docker/overlay2/f2c32f4542f1fd6f03f380034a6d7f8ac9c98bab271d46f822401fa0c1b38368/diff:/var/lib/docker/overlay2/19454fd1504ce1f977413bf2c888ec08bef430f7ea0d18a0666b83a1d450d6f3/diff:/var/lib/docker/overlay2/fe2cf70b65b53532fc3c795d819b1d405f9889fe009872bf6a1fdde9ae5447c0/diff:/var/lib/docker/overlay2/f1f3972d989ef52bfde2470d6bb52f849a4913ab0e99bb348d44c858de558a5c/diff:/var/lib/docker/overlay2/0e39f6f9b7355391cc97bf79b29568c3e2e88fde342748c0decbc1529d86c012/diff,MergedDir: /var/lib/docker/overlay2/14c9eb5ba3ab0e73b056395eb8cafe75b978687e2caffb2d95129b8d62641b56/merged,UpperDir: /var/lib/docker/overlay2/14c9eb5ba3ab0e73b056395eb8cafe75b978687e2caffb2d95129b8d62641b56/diff,WorkDir: /var/lib/docker/overlay2/14c9eb5ba3ab0e73b056395eb8cafe75b978687e2caffb2d95129b8d62641b56/work},Name: overlay2},Mounts: [{Type: bind,Source: /mydata/mysql/conf,Destination: /etc/mysql,Mode: ,RW: true,Propagation: rprivate},{Type: bind,Source: /mydata/mysql/data,Destination: /var/lib/mysql,Mode: ,RW: true,Propagation: rprivate},{Type: bind,Source: /mydata/mysql/log,Destination: /var/log/mysql,Mode: ,RW: true,Propagation: rprivate}],Config: {Hostname: 6ae5aab74552,Domainname: ,User: ,AttachStdin: false,AttachStdout: false,AttachStderr: false,ExposedPorts: {3306/tcp: {},33060/tcp: {}},Tty: false,OpenStdin: false,StdinOnce: false,Env: [MYSQL_ROOT_PASSWORDroot,PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin,GOSU_VERSION1.12,MYSQL_MAJOR5.7,MYSQL_VERSION5.7.36-1debian10],Cmd: [mysqld],Image: mysql:5.7,Volumes: {/var/lib/mysql: {}},WorkingDir: ,Entrypoint: [docker-entrypoint.sh],OnBuild: null,Labels: {}},NetworkSettings: {Bridge: ,SandboxID: 4dcb62a9e99a3670ffdc5c5f1551e430fd39ea9d178758e395032bcda545194b,HairpinMode: false,LinkLocalIPv6Address: ,LinkLocalIPv6PrefixLen: 0,Ports: {3306/tcp: [{HostIp: 0.0.0.0,HostPort: 3306},{HostIp: ::,HostPort: 3306}],33060/tcp: null},SandboxKey: /var/run/docker/netns/4dcb62a9e99a,SecondaryIPAddresses: null,SecondaryIPv6Addresses: null,EndpointID: 122b52fafa0f7e5db757c84cc7b8063731a5c7de89712fcc5d8b322907007744,Gateway: 172.17.0.1,GlobalIPv6Address: ,GlobalIPv6PrefixLen: 0,IPAddress: 172.17.0.3,IPPrefixLen: 16,IPv6Gateway: ,MacAddress: 02:42:ac:11:00:03,Networks: {bridge: {IPAMConfig: null,Links: null,Aliases: null,NetworkID: 6d48f532b37df30ed271bb075df2e3a5caaab34cd0bf3d9bfbcf66814f5d68b2,EndpointID: 122b52fafa0f7e5db757c84cc7b8063731a5c7de89712fcc5d8b322907007744,Gateway: 172.17.0.1,IPAddress: 172.17.0.3,IPPrefixLen: 16,IPv6Gateway: ,GlobalIPv6Address: ,GlobalIPv6PrefixLen: 0,MacAddress: 02:42:ac:11:00:03,DriverOpts: null}}}} ]进入正在运行的容器并以命令行交互 docker exec -it 容器ID bashShell 重新进入docker attach 容器ID 案例演示用centos或者unbuntu都可以 上述两个区别 attach 直接进入容器启动命令的终端不会启动新的进程 用exit退出会导致容器的停止。 exec 是在容器中打开新的终端并且可以启动新的进程 用exit退出不会导致容器的停止。  推荐大家使用 docker exec 命令因为退出容器终端不会导致容器的停止。 从容器内拷贝文件到主机上  容器→主机 docker cp  容器ID:容器内路径 目的主机路径 公式docker cp  容器ID:容器内路径 目的主机路径  导入和导出容器  export 导出容器的内容留作为一个tar归档文件[对应import命令] import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]  案例  docker export 容器ID 文件名.tar cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
http://www.tj-hxxt.cn/news/131101.html

相关文章:

  • 网站内容页怎么做的做一般的公司网站需要多少钱
  • 在自己网站建立自己的外链0基础学编程先学什么
  • 河南省住房和城乡建设厅门户网站设计制作小车二教学设计
  • 黄页网站推广方案阿里巴巴网站域名注册
  • 贵州能源网站 中企动力建设酒泉市住房和城乡建设局网站
  • 被攻击网站国外做ic的网站
  • 广东品牌网站建设平台做电影网站步骤
  • 网站的seo优化报告制作网站找哪家好
  • 网站增加聊天php网站如何绑定一级域名到子目录
  • wordpress建设软件下载站文登区住房和城乡建设局网站
  • 上海网站建设网网站工作室 需要什么手续
  • 网站编辑软件都有哪些坂田网站设计
  • 电商网站开发面试雄安移动网上营业厅
  • 灯具的网站建设上海平台网站建设报
  • wamp在网站建设中的功能及协作关系网络营销运营策划
  • 网站建设都分几个阶段教师网络培训心得体会
  • 做直播的在相亲网站交友WordPress 门票
  • 做毕业网站的流程以服务营销出名的企业
  • 太原网站优化多少钱好的做彩平图的网站
  • 广州10大网站开发app制作教程模板
  • 湖州企业做网站原创网站开发流程
  • 自助网站建设价格2345浏览器导航页
  • 代刷推广网站世界500强企业2021
  • 微商网站如何做推广南宁网站推广¥做下拉去118cr
  • 网站开发流程 知乎医疗器械网上商城
  • 阿里云服务器可以做商业网站网站建设人员的分工
  • 外贸网站建设注意事项和建议书店网站网站建设规划书
  • icp备案网站接入信息怎么写铜仁北京网站建设
  • 网站死链接怎么删除新媒体营销工具有哪些
  • 网站开发税目编码建站系统低价建站新闻资讯