dockerswarm集群管理初步使用
1. docker compose
官方编排项目之一,负责负责快速在集群中部署分布式应用。
Compose 中有两个重要的概念:
-
服务 ( service ):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
- 项目 ( project ):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml文件中定义。
compose的默认管理对象是项目,通过子命令对项目中的一组容器进行便捷地生命周期管
理。是用python编写的。
docker-compose —version
检查是否安装,本机macOS在安装docker的时候,已经默认安装好了。
docker-compose up
负责启动
docker-compose down
则停止项目
参考之前的例子,之前oralce和vdmp容器的启动命令如下:
### oracle 容器启动
docker stop oracle
docker rm oracle
docker run --name oracle -d -p 1521:1521 -it -v /Users/suitm/Persion/DockerFile/oracle_data/datafile:/u01/app/oracle/oradata/XE -v /Users/suitm/Persion/DockerFile/oracle_data/redo:/u01/app/oracle/fast_recovery_area/XE alexeiled/docker-oracle-xe-11g /start.sh
### stdvdmp 容器启动
docker stop stdvdmp
docker rm stdvdmp
docker run --name stdvdmp -d -p 9999:9999 -it -v /Users/suitm/Persion/DockerFile/xip:/home/xip stdxip vdmp.sh
修改成docker-compose作为一个项目启动,yml配置文件如下:
version: "3"
#服务列表
services:
#服务名1
db:
#依赖镜像
image: alexeiled/docker-oracle-xe-11g
#端口号
ports:
- "1521:1521"
#启动命令
command: /start.sh
#挂载文件
volumes:
- /Users/suitm/Persion/DockerFile/oracle_data/datafile:/u01/app/oracle/oradata/XE
- /Users/suitm/Persion/DockerFile/oracle_data/redo:/u01/app/oracle/fast_recovery_area/XE
#服务名2
xip_vdmp:
#依赖镜像
image: stdxip
#端口号
ports:
- "9999:9999"
command: vdmp.sh
#依赖的服务
depends_on:
- db
#挂载文件
volumes:
- /Users/suitm/Persion/DockerFile/xip:/home/xip
#模拟终端
tty: true
#允许标准输入(-it命令,只有加了这两个,bash命令才能阻塞,否则直接退出)
stdin_open: true
#用户
# user: xip
yml文件放在compose目录下,执行如下命令:
/Users/suitm/binsh/swarm/compose>docker-compose up
compose_db_1 is up-to-date
Recreating compose_xip_vdmp_1 ... done
Attaching to compose_db_1, compose_xip_vdmp_1
db_1 | Starting Oracle Net Listener.
db_1 | Starting Oracle Database 11g Express Edition instance.
db_1 |
db_1 | Database init...
db_1 | No volume sql script, ignoring /etc/entrypoint-initdb.d/*
db_1 |
db_1 | End init.
db_1 | Oracle started successfully!
db_1 | Starting Oracle Net Listener.
db_1 | Starting Oracle Database 11g Express Edition instance.
db_1 |
db_1 | Database init...
db_1 | No volume sql script, ignoring /etc/entrypoint-initdb.d/*
db_1 |
db_1 | End init.
db_1 | Oracle started successfully!
db_1 | Starting Oracle Net Listener.
db_1 | Starting Oracle Database 11g Express Edition instance.
db_1 |
db_1 | Database init...
db_1 | No volume sql script, ignoring /etc/entrypoint-initdb.d/*
db_1 |
db_1 | End init.
db_1 | Oracle started successfully!
xip_vdmp_1 |
xip_vdmp_1 | --->���������ɹ���ʼ����!
启动成功。一般来说,是加 -d命令后台启动:
/Users/suitm/binsh/swarm/compose>docker-compose up -d
compose_db_1 is up-to-date
compose_xip_vdmp_1 is up-to-date
/Users/suitm/binsh/swarm/compose>
查看正在执行的容器如下:
/Users/suitm/binsh/swarm/compose>docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cc7ecc0352ce stdxip "/docker_start.sh st…" 6 minutes ago Up 6 minutes 0.0.0.0:9999->9999/tcp compose_xip_vdmp_1
b08e616f1bed alexeiled/docker-oracle-xe-11g "/start.sh" 29 minutes ago Up 16 minutes 0.0.0.0:1521->1521/tcp, 8080/tcp compose_db_1
停止容器:
/Users/suitm/binsh/swarm/compose>docker-compose down
Stopping compose_xip_vdmp_1 ... done
Stopping compose_db_1 ...
Stopping compose_db_1 ... done
Removing compose_xip_vdmp_1 ... done
Removing compose_db_1 ... done
Removing network compose_default
/Users/suitm/binsh/swarm/compose>
2. docker-machine
是官方项目之一,负责快速在各个平台安装docker环境。
查看是否安装和版本:
/Users/suitm/binsh/swarm/compose>docker-machine -v
docker-machine version 0.14.0, build 89b8332