概述
docker和虚拟机类似,只不过仅仅保留极小一部分所需系统环境。
Docker基本组成
实操
安装
docker run 流程
Docker常用命令
镜像命令
容器命令
docker start 是后台运行
常用其他命令
从容器拷贝文件到主机
可视化
联合文件系统
commit镜像
容器数据卷
双向绑定
具名和匿名挂载
Dockerfile
生成的volume01,colume02自动挂载在容器内/ 根目录下,对应容器外是匿名挂载,
匿名挂载路径。
构建步骤
dockerfile指令
dockerfile 实战测试
cmd和entrypoint区别
实战:制作tomcat镜像
发布镜像
数据卷容器
--volumes-from
Docker网络
自定义网络
使用自建网络有较好的隔离性和内部连通性。
网络连通
部署redis集群
开启docker redis
单个master 故障后,slave会自动顶上,实现高可用
Springboot 打包 docker
1.写一个spring hello world 程序。
2.build之后拿到jar包
3.编写dockerfile
4.build docker
5.执行镜像
Docker Compose
管理多个容器
安装
具体步骤可参考https://www.runoob.com/docker/docker-compose.html
效果如下,实现一个计数功能。
ymal规则
compose.yml
从0构建计数服务
1.编写项目
HelloController
package com.suda.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@Autowired
StringRedisTemplate redisTemplate;
@GetMapping("/hello")
public Long hello(){
Long views = redisTemplate.opsForValue().increment("views");
return views;
}
}
application.properties,这里设置host是容器部署时对应的
server.port=8080
spring.redis.host=redis
docker-compose.yml
version: "3"
services:
pigapp:
image: app
build: . //表示从当前目录构建镜像,而非远程拉取
image: pigapp
depends_on:
- redis
ports:
- "8080:8080"
redis:
image: "redis:alpine"
Dockerfile
FROM java:8
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
2.将项目打包上传到服务器,还有两个配置文件
Docker Swarm
集群搭建
准备三台安装docker的机器,可以装好一台后克隆。
1.在master机上执行命令,这个ip是本机ip
docker swarm init --advertise-addr 19.168.188.128
通过以下命令,在clone1,clone2上执行,以添加进集群
docker swarm join --token SWMTKN-1-1ngfz1ygcjbrj0sh48utmd3z9a7oiplo8lbytohkv4orux6kbu-0k7tqf8ea48b7tfl2beg8ed6h 192.168.188.128:2377
注意,master机需要关闭防火墙,否则连不通,虚拟机桥接模式和nat模式都行
systemctl stop firewalld.service
Swarm弹性集群
动态扩缩容命令:副本数可以》机器数,每个机器多跑两个
docker service update --replicas 3 my-nginx
或者
两者等价
swarm小结
Docker Stack
Dcoker Secret
Docker Config
参考自狂神