docker进阶
docker-compose
首先介绍docker-compose
docker-compose是一个容器集成编排工具
可以通过yaml文件定义一组要启动的容器以及容器启动时的属性
docker-compose安装
docker-compose由python编写,可以直接通过pip指令安装
sudo pip3 install -U docker-compose //-U下载最新版本
docker-compose使用
docker-compose依赖于.yaml文件
yaml文件由一系列key-value构成,用来批量管理容器,定义其属性
其实也是一种自动化流程中加入个性化编排的思想。
下面以一个实例来说明:
version: ‘3’
services:
web:
image: jamtur01/composeapp
command: python app.py
ports:
- “5000:5000”
volumes:
- .:/composeapplinks:
-redis
redis:
image: redis
version和service可以不写
从web那行开始是关键
最外层的两个web和redis是批量容器名称
docker-compose为了不重名,一般会变成web_1和redis_1
里面定义了他们的属性。
可选的有如下
build
这个上面代码里没体现
build可以代替上面的image参数
image是直接指定基于的镜像是什么来运行容器
而build可以直接给出dockerfile的路径,让他先去构建镜像,并且基于这个镜像创建服务,更加方便,推荐使用!
image
image是直接指定基于的镜像是什么来运行容器
command
docker run里面的最后一个参数command
ports
相当于docker run 里面 -p 5000:5000
这里支持指定多个ports
格式如上往下叠加就行
volumes
卷共享
相当于docker run 里的-v .:/composeapp
links
用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信,并且接收容器可以获取源容器的一些数据,如源容器的环境变量。
相当于docker run 里的–link
–link的详细介绍:https://www.jianshu.com/p/21d66ca6115e
写好了yaml文件后就可以启动啦
docker-compose启动
docker-compose up -d //以守护进程的方式启动,守护进程就是后台运行的进程(depatch)
查看docker-compose管理的进程
docker-compose ps
查看docker-compose服务日志
docker-compose logs (-f)
停止服务
docker-compose stop
删除服务
docker-compose rm
Swarm
docker swarm是一个docker集群管理工具,可以将一组docker主机作为一个虚拟的docker主机来管理
将多台docker主机看作一个集群,在集群级别以上提供标准Docker API服务
Swarm安装
最简单的方式就是docker镜像
docker pull swarm
Swarm使用
多节点玩swarm就需要每个节点都去pull swarm
创建swarm
docker run --rm swarm create
返回一个token
创建只需要一次
在每个节点上运行swarm代理
docker run -d swarm join --addr=本机ip token://上面拿到的token
列出swarm节点
docker run --rm swarm list token://上面拿到的token
启动镜像管理者
docker run -d -p 2380:2375 swarm manage token://…
2375是docker-api标准端口
swarm创建就结束了
后面就是设置一些过滤条件啥的让指定的角色参与服务
docker machine
docker machine的定位是在本地或者云环境中创建docker主机
简单来说,docker是一个引擎,docker machine可以很方便地管理引擎
一般docker machine用来在指定节点或者平台上安装docker引擎,配置为可用的docker环境
docker machine安装
sudo curl -L https://github.com/docker/machine/releases/download/v0.13.0/docker-machine-‘uname -s’-uname -m’ > docker-machine
sudo mv docker-machine /usr/local/bin/docker-machine
sudo chmod +x /usr/local/bin/docker-machine
docker-machine -v
docker machine使用
首先保证本地主机可用ssh连接到目标主机
使用generic类型驱动
docker-machine create -d generic --generic-ip-address=目标主机ip --generic-ssh-user=目标主机用户 连接名称
查看docker主机
docker-machine ls
其他指令可用
docker-machine -h
按需查找