Docker Compose是什么
Docker Compose 是一个工具,这个工具可以通过一个 yml 文件定义多容器的 Docker 应用.
通过一条命令就可以根据 yml 文件的定义去创建或者管理多个容器.
什么是yml文件 YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,
YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互.
如何定义yml文件 新建 docker-compose.yml 文件
version: '3.7'
services:
mongodb:
contain
容器之间为什么要互访 docker容器与容器之间是隔离状态,不能互相访问,但如果有些依赖关系的服务要如何访问对方呢?
介绍三种方法来解决容器互访问题.
虚拟IP访问 安装docker时,docker会默认创建一个内部的桥接网络docker0,每创建一个容器分配一个虚拟网卡,容器之间可以根据ip互相访问。
运行一个centos镜像, 查看ip地址得到:192.168.32.2
首先通过 docker ps 查看当前电脑上运行的容器实例
$ docker ps
CONTAINER ID IMAGE COMMAND CREATE
docker 创建mongodb 容器 安装 mongodb 镜像 拉取官方镜像
docker pull mongo
本地创建数据库目录 # zhangzhi @ ZhangZhi-MacBook-Pro in ~ [9:03:15]
$ sudo mkdir mongodb
不要忘记给目录 777 权限
sudo chmod 777 mongodb
本地配置文件目录 # zhangzhi @ ZhangZhi-MacBook-Pro in ~ [9:27:24] C:130
$ sudo mkdir docker/mongodb
不要忘记给目录 777 权限
sudo chmod
docker 安装 redis 拉取镜像 docker pull redis
宿主机创建映射目录 创建目录 sudo mkdir -p docker/redis/redis01/conf
sudo mkdir -p docker/redis/redis01/data
conf 目录放redis.conf 配置文件
data 目录映射redis数据目录
上面文件都要chmod 777 的权限
创建配置文件 在线拉取一个 redis.conf 放入 docker/redis/redis01/conf 目录下
cd docker/redis/redis01/conf
wget http:
创建自己的项目 我们用简单的 node.js web项目输出 helloworld 为例.
项目目录:
npm start app.js 启动项目;
app.js 代码
const Koa = require('koa');
const app = new Koa();
const main = ctx => {
ctx.response.body = 'Hello World';
};
app.use(main);
app.listen(3000);
编写dockerfile FROM node:8.4
COPY . /app
WORKDIR /app
RUN ["n
什么是Docker 如今的云计算就好比大货轮,docker就是集装箱,一个个封闭式的箱体可以堆放再货轮上,我们不关心箱体里装的是什么货物;
我们这实际开发中,不同的应用程序可能会有不同的应用环境,比如.net开发的网站和php开发的网站依赖的软件就不一样,如果把他们依赖的软件都安装在一个服务器上就要调试很久,很麻烦,还会造成一些冲突.
比如IIS和Apache访问端口冲突,这个时候你就要隔离.net开发的网站和php开发的网站.
常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高.
docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小
docker 构建镜像 获取镜像 Docker 运行容器前需要本地存在对应的镜像,如果本地不存在该镜像,Docker 会从镜像仓库下载该镜像
从 Docker 镜像仓库获取镜像的命令是
docker pull
格式 docker pull [选项] [Docker Registry 地址[:端口号]/] 仓库名[:标签]
# 默认官方镜像库拉取,latest 标签
$ docker pull ubuntu
# 指定版本标签
$ docker pull ubuntu:18.04
# 指定仓库域名(默认官方仓库)
$ docker pull library/ubuntu
# 第三方服务商或私有
概述 容器技术对进程进行封装隔离,属于操作系统层面的虚拟化技术。
由于隔离的进程独立于宿主和其它的隔离的进程,因此称为容器。
Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。
使得 Docker 技术比虚拟机技术更为轻便、快捷。
通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用级别的一次封装,到处运行
docker 组成
镜像 Image
容器 Container
仓库 Repository
镜像 Image
Docker 镜像是 一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还