Docker 入门教程(九)Docker Compose

传统的本地环境一般是把 NGINX、MySQL、PHP 都在一台机器上安装好; 但是如果用于生产环境就非常不利于维护和扩展了; Docker 中推崇一个服务就是一个容器; 我们上篇文章使用的 Dockerfile 都是定义的单个容器服务的镜像; 那容器与容器之间的关系怎么定义呢? 前面我们讲网络的时候通过命令行实现了容器的互通; 那有木有一种像 Dockerfile 类似的方案用来记录容器之间的关系? 没错这就是今天要讲的 Docker Compose ;
阅读全文

Docker 入门教程(八)使用 Dockerfile 制作 Linux、NGINX、MySQL、PHP 镜像

上篇文章把 Dockerfile 的基本使用介绍了一遍; 我们接下来就用 Dockerfile 制作一套简单的环境; Linux我们这里以 Ubuntu 为示例; 默认的官方镜像比较基础有些地方不一定适合我们使用; 我们这里对 Ubuntu 做一些简单的修改; 创建一个 Ubuntu 目录; 我这里创建了两个文件; conf/sources.list```bashdeb http://mirrors.aliyun.com/ubuntu/
阅读全文

Docker 入门教程(七)Dockerfile

前面我们使用 `docker commit` 制作了一个自己的镜像; 但是这个主要是用于学习以及一些特殊的用途; 实际应用中一般不会通过这种方式制作镜像; 因为 `docker commit` 只是把变动的文件制作成了镜像; 比如之前文章中创建 test 镜像的时候; 记录的是创建的 `/test` 这个文件夹; 但是变动的过程无法记录; 没有办法追踪到我是通过 `mkdir /test` 这个命令创建的 `/test` 目录; 这样的话就非常不利于追踪历史
阅读全文

Docker 入门教程(六)网络 Network

端口映射默认容器在外部默认是不可访问的; 比如进入到容器里面才可以操作; 这对于提供网络请求的应用就不友好了; 比如说我们常见的 Nginx ; 如果想让容器可被访问; 这就需要使用 `P` 参数分配端口了; ```bashdocker run d P nginx```这里 Docker 给随机分配了一个端口个 `32768`; 我们通过浏览器访问刚这个端口就可以看到 Nginx 的欢迎页了; 如果是使用的各云服务器需要
阅读全文

Docker 入门教程(五)数据卷 Volumes

有些容器在运行的时候是会产生数据的; 这种容器就叫做有状态容器; 比如说 MySQL 容器; 我们在创建镜像的时候希望保留的是 MySQL 各种配置以及扩展; 并不想把 MySQL 的数据也打包到镜像中; 数据卷就是为此场景而生的; 数据卷分为两种类型: 1. 绑定挂载的 volume (bind mount volume)2. 受管理的 volume (managed volume) 绑定挂载的 volume (bind mount volume)
阅读全文

Docker 入门教程(四)仓库 Repository

Docker Hub仓库是用来存放发布镜像的地方; Docker 官方提供了仓库服务 ; 我们之前的文章中讲的 `docker pull` 拉取的镜像就是从 Docker Hub 仓库中拉取的; 要使用 Docker Hub 需要先注册一个账号; 然后在命令行中就可以登录了; ```bashdocker login```登录后就可以推送自己的镜像了; 这和 Github 的 Push 代码同样很像; 拉取镜像、启动容器、推送到仓库
阅读全文

Docker 入门教程(三)容器 Container

容器就是镜像的一个运行示例; 如果不理解的话可以先回到第一篇的概念文章复习下; 启动容器上篇文章已经拉取了 Ubuntu 镜像; 现在来启动一个容器; ```bashdocker run t i ubuntu /bin/bash````t` : 让容器分配一个伪终端 `i` : 让容器标准输入保持打开 这就进入到一个 Ubuntu 系统中了; 执行 `exit` 命令可以退出镜像; 如果不想退出容器让容器保持后台运行可以使用 `d` 参
阅读全文

Docker 入门教程(二)镜像 Image

联合文件系统镜像的基础是联合文件系统 (UnionFS) ; 这个联合文件系统我们可以简单的理解为把多个目录挂载到一个目录下; 举个栗子; 这里创建 A 和 B 以及 C 三个目录; A 目录下有 a.txt 文件和 z.txt 文件; B 目录下有 b.txt 文件和 z.txt 文件; C 目录下是空的; ```bash| A| | a.txt| ` z.txt| B| | b.txt| ` z.txt` C
阅读全文

Docker 入门教程(一)概念

作为开发者; Git 是我们的必备技能; 它可以记录文件开发历史; 可以在本地和服务器上保持文件的一致性; 但是我们的代码都依赖于运行环境; 比如说典型的 LNMP 环境; 如果环境不一致; 代码跑出来的效果肯定也是很多问题的; 那能不能像管理代码一样来管理运行环境呢?Docker 就可以达到统一运行环境的目的;Docker 的精髓就在于可以保证各个环境的一致性;一个经常拿来跟 Docker 对比的是虚拟机; 虚拟机是虚拟了一个
阅读全文

MySQL的自动补全和语法高亮工具MyCli

MySQL自带的命令行客户端难用的简直令人发指;连基本的补全和高亮都没有;还好有一款叫 MyCli 的工具解决了以上痛点;一图胜千言这里直接借用官网的动图;心动的话下面进入安装环节;```bashbrew install mycli```如果是其他平台的话参考;安装完成后使用起来也非常简单;就把之前命令行中的 mysql 换成 mycli 即可;比如...
阅读全文