目录 1.什么是Docker? 2.Docker的出现解决了什么问题? 3.Docker的特别之处 4.Docker相关网站 1.什么是Docker? 2010年dotCloud公司在旧金山成立,PAAS平台的服务供应商:2013年dotCloud更名为Docker股份有限公司(Docker,Inc).Docker公司专注开源容器引擎的开发,他们的容器引擎产品就叫Docker,基于Go语言开发,并遵从Apache2.0协议. Docker的主要目标是"Build,Ship and Run Any…
目录 1.Docker的底层原理 2.Docker中常用的基本概念 3.run命令的运行流程 4.为什么Docker比VM快 Docker架构图: 我们依照Docker架构图进行Docker基础概念的说明. 1.Docker的底层原理 Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器.容器是一个运行时环境,就好比是我们前面说到的集装箱. 例如架构图中的客户端(Clien…
目录 1.DockerFile文件说明 2.Dockerfile构建过程解析 (1)Docker容器构建三步骤 (2)Dockerfile文件的基本结构 (3)Dockerfile注意事项 (4)Docker执行Dockerfile的大致流程 3.总结 4.DockerFile保留字指令 1.DockerFile文件说明 (1)DockerFile文件是什么 Dockerfile是用来构建Docker镜像的文本文件,文本内容包含了一条条构建镜像所需的指令.参数和说明. 即:Dockerfile仅…
目录 1.前提说明 2.编写Dockerfile文件 3.构建镜像 4.运行镜像 5.列出镜像的变更历史 1)目标:自定义镜像wokong_centos. 2)所用到的保留字指令: FROM:基础镜像,当前新镜像是基于哪个镜像的. MAINTAINER:镜像维护者的姓名和邮箱地址. RUN:容器构建时需要运行的命令. EXPOSE:当前容器对外暴露出的端口(端口映射). WORKDIR:指定在创建容器后,终端默认登陆进来的工作目录,一个落脚点,也就是pwd的位置. ENV:用来在构建镜像过程中设…
目录 1.前提 2.通过yum安装Docker (1)更新yum包 (2)移除旧的Docker版本 (3)安装必须的软件包 (4)设置稳定yum源仓库 (5)更新yum软件包索引 (6)开始安装Docker-ce (7)查看Docker版本信息 (8)启动Docker (9)查看Docker状态 (10)加入开机启动 (11)验证Docker是否正确安装 (12)查看本地Docker镜像 (13)停止Docker运行 CentOS环境下的Docker官方推荐的三种安装方式 yum安装方式 脚本安…
目录 1.Volume命令说明 2.Volume命令的使用 (1)创建数据卷 (2)查看本地数据卷列表 (3)打印myVolume数据卷的详细信息 (4)删除数据卷 (5)删除所有未使用的数据卷 3.具名挂载和匿名挂载 (1)匿名挂载 (2)具名挂载 (3)Docker容器数据卷的默认挂载位置 Volume:即数据卷. Docker Volume命令能让容器从宿主主机中读取文件,或从容器中持久化数据到宿主主机内,让容器与容器产生的数据分离开来,一个容器可以挂载多个不同的目录. Volume的生命…
目录 1.准备工作 2.Docker登陆命令 3.Docker提交命令 4.总结: 5.补充:docker tag命令 1.准备工作 Docker Hub地址:https://hub.docker.com/ (1)注册用户: 说明: Sign In:登陆,已有账户,点击这里进行登陆. Sign Up:注册,没有账户,点击这里进行注册. Get Started Today for Free :立刻免费开始. Already have an account? Sign In:已经有帐号了? 登入.…
目录 1.新建并启动容器 2.列出当前所有正在运行的容器 3.退出容器 4.启动容器 5.重启容器 6.停止容器 7.强制停止容器 8.删除已停止的容器 有镜像才能创建容器,这是根本前提. 我们下载一个CentOS镜像作为演示. [root@192 ~]# docker pull centos Using default tag: latest latest: Pulling from library/centos 7a0437f04f83: Pull complete Digest: sha2…
本文作为Docker基础系列第一篇文章,将详细阐述和分析三个问题:Docker是什么?为什么要用Docker?如何快速掌握Docker技术? 本系列文章中Docker的用法演示是基于CentOS7进行,因此假设读者已经掌握了初步的Linux知识,如果你对Linux最基本的常用命令及操作还不太熟悉,请参考我之前写的Linux入门系列教程. 一.Docker是什么 用简单的一句话来概况:Docker就是一种容器虚拟化技术. 要了解Docker为什么会出现,它解决了什么样的问题,那就要回顾下虚拟化技术…
Docker 是一个开发.发布和运行应用程序的开放平台.Docker使您能够将应用程序与基础架构分离,以便快速交付软件.有了 Docker,你可以像管理应用程序一样管理你的基础设施.通过利用 Docker 快速发布.测试和部署代码的方法,您可以显著减少编写代码和在生产环境中运行它之间的延迟. Docker 平台 Docker 提供了在松散隔离的环境(称为容器)中打包和运行应用程序的能力.隔离和安全性允许您在给定的主机上同时运行多个容器.容器是轻量级的,因为它们不需要额外的hypervisor负载…
目录 1.镜像是什么 2.Docker镜像获取的方式 3.Docker镜像加载原理 (1)UnionFS(联合文件系统) (2)Docker镜像加载原理 1.镜像是什么 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时环境.库.环境变量和配置文件. 即:所有的应用,直接打包成Docker镜像,就可以直接跑起来! 2.Docker镜像获取的方式 从仓库中拉取镜像(docker pull). 从本地文件中载入镜像(…
目录 1.分层的镜像 2.加深理解 3.特别说明 1.分层的镜像 我们可以去下载一个镜像,注意观察下载的日志输出,可以看到Docker的镜像是一层一层的在下载. 思考:为什么Docker镜像要采用这种分层的结构呢? 最大的好处,我觉得莫过于是资源共享了! 比如有多个镜像都从相同的Base镜像构建而来,那么宿主机只需在磁盘上保留一份Base镜像,同时内存中也只需要加载一份Base镜像,这样就可以为所有的容器服务了,而且镜像的每一层都可以被共享. 查看镜像分层的方式可以通过docker image…
目录 1.commit命令作用 2.commit命令说明 3.示例演示 1.commit命令作用 在运行的容器中,并在镜像的基础上做了一些修改,我们希望保存起来,封装成一个新的镜像,方便我们以后使用,也就是提交容器副本,使之成为一个新的镜像. 即:docker commit,从容器创建一个新的镜像. 例如: 我们以Tomcat镜像为例,运行启动Tomcat镜像后得到Tomcat容器,我们在Tomcat容器中做了一些自定义的设计或者修改,使此时的Tomcat容器成为符合我们需求的容器,之后就可以通…
目录 1.什么是Docker容器数据卷 2.数据卷的作用 3.数据卷的使用 1.什么是Docker容器数据卷 Docker容器数据卷,即Docker Volume(卷). 当Docker容器运行的时候,会产生一系列的数据文件,这些数据文件会在关闭Docker容器时,直接消失的.但是其中产生部分的数据内容,我们是希望能够把它给保存起来,另作它用的. 所以我们期望: 将应用与运行的环境打包形成容器运行,伴随着容器运行产生的数据,我们希望这些数据能够持久化. 希望容器之间也能够实现数据的共享. 根据我…
目录 1.简单了解一下DockerFile 2.通过DockerFile的方式挂载数据卷 (1)创建DockerFile文件 (2)编辑Dockerfile文件 (3)构建Dokcer镜像 (4)启动镜像,并操作镜像 (5)查看数据卷 1.简单了解一下DockerFile 我们这里先简单的概括一下DockerFile: Dockerfile就是用来构建Docker镜像的构建文件,是一个命令脚本. 通过这个脚本可以生成镜像,镜像是一层一层的,而脚本也是一个个的命令,每个命令都是一层. (理解到这里…
目录 1.COPY指令 (1)COPY指令说明 (2)COPY指令格式 (3)COPY指令使用 (4)其他 2.ADD指令 (1)ADD指令说明 (2)ADD指令格式 (3)ADD指令使用 (4)不推荐使用ADD指令下载文件的原因 (5)其他 3.总结: COPY 和 ADD 都是 Dockerfile 中的指令,有着类似的作用.它们允许我们将文件从特定位置复制到 Docker 镜像中. 1.COPY指令 (1)COPY指令说明 COPY 指令从 <src> 复制新的文件或目录,并将它们添加到…
目录 1.问题复现 2.解决冲突 3.重新安装docker-ce-selinux 4.安装Docker-ce 5.总结 通过yum安装Docker的时候,安装20版本的Docker没有出现问题,在安装17版本的时候,出现了问题. 问题复现,下面记录一下这个问题. 1.问题复现 (1)安装17.03版本Docker 执行 [root@localhost ~]# yum install docker-ce-17.03.0.ce 已加载插件:fastestmirror Loading mirror s…
CentOS环境下的Docker官方推荐的三种安装方式 yum安装方式 本地RPM安装方式 脚本安装方式 目录 1.下载Docker的RPM安装包 2.安装Docker 3.通过RPM安装包安装Docker出现的问题 如果无法使用yum方式安装Docker,可以通过先下载Docker的RPM包,然后在本地进行安装. 这种方式在工作的时候推荐使用,因为容易统一环境. 1.下载Docker的RPM安装包 (1)方式一 通过阿里云镜像网站下载RPM包. https://mirrors.aliyun.c…
Docker官方提供方便用户操作的安装脚本,用起来是非常方便.但是要注意的是,使用脚本安装Docker,是安装最新版本的Docker. 注意:不建议在生产环境中使用安装脚本.因为在生产环境中一定不要最新版本,一定要用一个成熟稳定版.如果没有安全性更新,只是简单的常规的功能性更新,并且更新的功能中没有你需要用的需求,建议不更新. # 执行这两行命令就好,非常简单 $ curl -fsSL https://get.docker.com -o get-docker.sh #下载安装脚本 $ sudo…
目录 1.查询Docker安装过的包 2.卸载Docker软件包 3.删除残留目录 4.验证是否卸载 5.20版本Docker卸载(官方文档) 1.查询Docker安装过的包 执行yum list installed | grep docker或# rpm -qa|grep docker命令. [root@localhost docker]# yum list installed | grep docker docker-ce.x86_64 17.03.0.ce-1.el7.centos @/d…
目录 步骤1:搜索镜像 步骤2:下载Nginx镜像 步骤3:运行Nginx镜像 步骤4:进行本机测试 步骤5:进入容器内操作 步骤6:测试外网访问容器 步骤1:搜索镜像 使用docker search命令进行搜索. 建议大家去Docker官方镜像仓库去搜索,地址https://hub.docker.com/,可以看到详细的帮助文档,和镜像的仓库源所支持的版本. 步骤2:下载Nginx镜像 使用docker pull命令,从Docker镜像库中拉取镜像. [root@192 ~]# docker…
目录 步骤1:搜索镜像 步骤2:下载Tomcat镜像 步骤3:运行Tomcat镜像 步骤4:本机和外网测试 步骤5:解决问题 补充:--rm选项 步骤1:搜索镜像 使用docker search命令进行搜索. 建议大家去Docker官方镜像仓库去搜索,地址https://hub.docker.com/,可以看到详细的帮助文档,和镜像的仓库源所支持的版本. 步骤2:下载Tomcat镜像 使用docker pull命令,从Docker镜像库中拉取镜像. [root@192 ~]# docker pu…
目录 1.Portainer介绍 2.Portainer安装启动 3.Portainer初始化配置 4.Portainer汉化 1.Portainer介绍 (1)Portainer 是一款轻量级的图形化管理工具,通过它我们可以轻松管理不同的 Docker 环境.Portainer 部署和使用都非常的简单,它由一个可以运行在任何 Docker 引擎上的容器组成. (2)Portainer 功能十分全面,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操…
目录 1.验证容器和宿主机之间数据共享 2.容器停止退出后,主机修改后数据是否同步 3.带只读权限的挂载数据卷 1.验证容器和宿主机之间数据共享 通过上面的操作,接下来我们演示一下通过数据卷的挂载,实现容器和宿主机之间的数据共享. 步骤1:在宿主机中的HostDataVolume目录中创建host.txt文件. # 查看宿主机当前位置 [root@192 HostDataVolume]# pwd /home/HostDataVolume # HostDataVolume目录中创建host.txt…
目录 1.搜索镜像 2.拉取镜像 3.查看镜像 4.启动镜像 5.操作容器 (1)在MySQL中创建数据库 (2)外部连接Dokcer容器中的MySQL服务 (3)查看挂载情况 (4)测试MySQL服务持久化 (5)问题说明 (6)MySQL数据库的数据备份 6.停止容器 7.移除容器 实战:解决MySQL的数据持久化的问题! 总体步骤: 搜索镜像 拉取镜像 查看镜像 启动镜像 操作容器(重点) 停止容器 移除容器 1.搜索镜像 搜索MySQL镜像,也可以在Docker官方镜像仓库中进行搜索.…
目录 1.数据卷容器的说明 2.数据卷容器共享数据原理 3.总结 4.练习:MySQL实现数据共享 1.数据卷容器的说明 (1)什么是数据卷容器 一个容器中已经创建好的数据卷,其它容器通过这个容器实现数据共享.那么这个容器,称之为数据卷容器.(也可以说叫父容器) (2)数据卷容器的作用 数据卷容器的作用就是,实现多个容器间的数据传递共享. 如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器. 数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的. (3)需要使用的…
目录 1.CMD指令和ENTRYPOINT指令说明 2.CMD指令只有最后一条生效的原因 3.CMD指令演示 4.ENTRYPOINT指令演示 5.总结 CMD指令和ENTRYPOINT指令作用都是指定一个容器启动时要运行的命令. 1.CMD指令和ENTRYPOINT指令说明 CMD指令, 支持三种格式: CMD ["executable","param1","param2"] :使用 exec 执行,推荐方式: CMD command para…
目录 1.ONBUILD指令说明 2.演示ONBUILD指令的使用 3.补充:crul命令解释 1.ONBUILD指令说明 ONBUILD是一个特殊的指令,它后面跟的是其它指令,比如 RUN, COPY 等,而这些指令在当前镜像构建时并不会被执行.以当前镜像为基础镜像,去构建下一级镜像的时候,才会执行ONBUILD后面的指令. Dockerfile中的其它指令,都是为了定制当前镜像而准备的,唯有ONBUILD指令是为了帮助别人而定制自己,来准备的. 即:ONBUILD指令在构建一个有继承的Doc…
目录 1.目标 2.准备 3.编写Dockerfile文件 4.构建镜像 5.启动镜像 6.验证容器是否能够访问 7.向容器中部署WEB项目,同时验证数据卷挂载 (1)准备一个简单的WEB项目 (2)访问验证 1.目标 以ContOS镜像为基础镜像,自定义一个tomcat9的镜像. 镜像可以正常运行,外界可以访问. 与宿主机与tomcat9之间配置挂载. 部署一个简单的WEB项目,外界可以访问. 2.准备 准备tomcat压缩包,因为tomcat的运行需要JDK,所以也需要JDK8的压缩包. 如…
目录 1.save命令 2.load命令 1.save命令 将指定的一个或多个镜像保存成.tar格式的文件,进行打包归档. 查看docker save帮助命令,如下: [root@192 ~]# docker save --help Usage: docker save [OPTIONS] IMAGE [IMAGE...] Save one or more images to a tar archive (streamed to STDOUT by default) Options: -o, -…