Docker-compose
一、简介
Docker
DockerFile build run 手动操作,单个容器。
微服务。100个微服务!依赖关系。
Docker Compose 来轻松高效的管理容器!定义运行多个容器。
官方介绍
定义、运行多个容器。
YAML file配置文件
二、作用
批量容器编排
三、安装
#官方下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#授权
chmod +x /usr/local/bin/docker-compose
# 加速下载
curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#授权
chmod +x /usr/local/bin/docker-compose
四、网络规则
docker network ls
docker network inspect 6535754e020a
docker-compose,以前都是单个docker run 启动容器。
docker-compose,通过docker-compose编写yaml配置文件、可以通过compose一键启动、停止所有服务。
五、compose配置编写规则
官方文档:https://docs.docker.com/compose/compose-file/
核心:3层
例子
六、部署
1、一键部署WP博客
https://docs.docker.com/compose/wordpress/
- 下载项目
- 如果需要文件(DockerFile)
- 文件准备齐全(直接一键启动)
编写docker-compose.yaml
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
启动
vim docker-compose.yaml
docker-compose up
2、编写微服务上线
2.1、步骤
@RestController
@Slf4j
public class HelloController {
@Autowired
StringRedisTemplate stringRedisTemplate;
@GetMapping("/hello")
public String hello() {
Long youyuan = stringRedisTemplate.opsForValue().increment("youyuan");
return "hello" + youyuan;
}
}
Dockfile
FROM java:8
COPY *.jar /app.jar
CMD ["--server.port=80"]
EXPOSE 80
ENTRYPOINT ["java","-jar","/app.jar"]
yaml
version: '3.3'
services:
kuangapp:
build: . #表示当前文件夹的镜像
image: kuangapp
container_name: kuangapp
depends_on:
- redis
ports:
- "80:80"
redis:
image: "redis:alpine"
restart: always
container_name: myRedis
打包
运行
docker-compose up