Docker

概述

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

参考自狂神

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值