0x00 概述 在掌握 Docker 的一些背景知识后,我们还不得不花费一节的篇幅来简单介绍有关 Docker 核心的一些知识.当然,大家不要觉得有“核心”这类的词,我们就要在这一节中深入 Docker 底层去讲解原理性的东西,更确切的说这一节更像一张词汇表,在掌握这些与 Docker 紧密相关的词汇后,大家可以更好的理解之后小节中的内容. 0x01 四大组成对象 在之前的小节里,我们提到了 Docker 实现容器引擎的一些技术,但那些都是一些相对底层的原理实现,在 Docker 将它们封装后,…
前言 Docker不仅是一个强大的服务器部署工具,而且它还有一个官方的Docker Hub registry用于储存Docker镜像.上传镜像到Docker Hub是免费的,上传的镜像文件同时也对公共领域开放,而这可能不是我们想要的. 本文介绍如何配置一个私有的Docker registry,在此上传的镜像是私密的,你可以从另一个联网的主机以安全的方式下载此registry上的镜像. 本文仅介绍registry的创建,而不讨论应用的容器化.有关Docker镜像创建的操作可参考这篇Docker入门…
Docker仓库服务器名为Docker注册(registry)服务器.可以使用docker push命令将镜像上传到注册服务器,也可以使用docker pull命令下载服务器的镜像. Docker注册服务器中有多种存储镜像数据的方法,可以存储到执行Docker注册的服务器,也可以存储到阿里云提供的容器镜像服务上面(推荐,简单易用). 1. 创建注册服务器容器 Docker注册服务器其实也是Docker Hub提供的Docker镜像.首先需要下载Docker注册服务器: sudo docker p…
docker hub上有官方的mysql镜像,我们可以利用它来创建mysql容器,作为一个服务容器使用. 1.下载mysql镜像 docker pull mysql 2.创建镜像 docker run --name mysqldb  -e MYSQL_ROOT_PASSWORD=root -d mysql 3.获取被创建容器的ip docker inspect mysqldb 4.从主机上利用mysql客户端测试能否连接到容器中的mysql服务 mysql -h 172.17.0.2 -u ro…
0x00 概述 自己编写 Dockerfile 能够很好的实现我们想要的程序运行环境,不过如果装有我们想要环境的镜像已经由热心的开发者构建好并共享在 Docker Hub 上,直接使用它们就会远比自己编写 Dockerfile 并进行构建要来的简单的多了.事实上,在开发过程中我们用到的镜像大部分还是直接采用 Docker Hub 中已经存在的镜像的,即使自己编写 Dockerfile,也只是对已有镜像进行简单的改动,很少会从零开始搭建镜像.在这一节中,我们要来看看如何更好地使用 Docker H…
一.docker原理 1.什么是docker:解决了运行环境和配置问题的容器,方便做持续集成并有助于整体发布的容器虚拟化技术. 2.虚拟机的缺点:(1)资源占用多:(2)冗余步骤多:(3)启动慢,分钟级. 3.容器:容器不需要捆绑一整套操作系统,只需要打包软件工作所需的库资源和设置,可以看做是小型的.浓缩版的Linux系统. 4.容器与传统虚拟化技术的区别: (1)容器启动更便捷:传统虚拟机技术要虚拟出一套硬件,在其上运行一个完整的操作系统,再运行所需的应用进程:而容器内的应用进程直接运行于宿主…
1.如果docker主机不需要通过代理连接外网 则docker的相关命令(如docker search)或docker容器与网络相关的操作都可以正常进行,不需要特殊设置. 2.当docker主机 是通过代理才能连接外网时,采用服务方式启动守护进程 如果docker守护进程是通过服务的方式启动的(sudo start docker) 当我们执行如  docker search ubuntu 命令时,会报错Error response from daemon: Get https://index.d…
安装好docker后,需要启动docker守护进程.有多种启动方式. 一.服务的方式 因为docker守护进程被安装成服务.所以,可以通过服务的方式启停docker守护进程,包括查看状态. sudo start docker  //启动 sudo stop docker  //停止 sudo status docker  //查看状态 二.利用docker daemon命令 sudo docker daemon 利用sudo ps -A 可以获取守护进程的进程号 三.让远程api可以访问dock…
0x00 概述 通过阅读之前的小节,相信大家对 Docker 在开发中的应用已经有了一定的了解.作为一款实用的软件,我们必须回归到实践中来,这样才能更好地理解 Docker 的实用逻辑和背后的原理.在这一小节里,我们就举一个完整的例子,让大家跟随这个项目的脉络,熟悉如何通过 Docker 和 Docker Compose 来搭建应用开发环境. 0x01 设计项目的目录结构 在这一小节里,我们以一个由 MySQL.Redis.PHP-FPM 和 Nginx 组成的小型 PHP 网站为例,介绍通过…
0x00 概述 既然 Docker 是一款实用软件,我们就不得不先从它的安装说起,只有让 Docker 运行在我们的计算机上,才能更方便我们对 Docker 相关知识和使用方式的学习.得益于与商业性的优雅结合,Docker 背后拥有大量的优秀开发者为其提供技术支持,而这个优势所造就的结果之一,就是 Docker 拥有丰富且完善的安装体系,我们可以很轻松的通过多种方式安装和运行 Docker. 0x01 安装前的准备 由于 Docker 容器实现本身就采用了 Linux 内核中很多的特性,所以它自…