0
点赞
收藏
分享

微信扫一扫

flutter开发实战-设置bottomNavigationBar中间按钮悬浮效果

目录

安装Docker

安装yum工具

更新本地镜像源

安装docker

启动docker

关闭防火墙

docker启动命令

配置镜像加速

docker的使用

拉取nginx

查看本地镜像

把镜像文件nginx导出成tar文件

查看是否导出成功

​编辑

删除本地镜像nginx:latest

导入镜像文件nginx

拉取redis

把镜像文件redis导出成tar文件

删除本地镜像redis:latest

导入镜像文件nginx

创建并运行容器 

nginx容器

创建并运行一个nginx容器

查看容器运行状态

访问容器

查看容器日志

持续更新日志:此时每次访问都会打印日志出现

进入容器修改内容

进入容器nginx

进入容器nginx内的html文件 

修改index文件内容

退出容器

停止容器mn

启动容器mn

删除容器mn

redis容器

创建并运行一个redis容器,并且支持数据持久化

进入容器修改内容

进入容器redis

连接rides

输入数据num

读取数据num

退出容器:需要退出两次

数据卷操作

创建一个数据卷

查看数据卷

查看数据卷的详细信息

删除数据卷

删除未使用的数据卷

删除某个数据卷 

数据卷挂载

创建一个nginx容器,修改里面的内容

创建一个nginx容器

修改该文件的内容

创建mysql容器,将主机目录直接挂载到容器

将mysql.tar文件上传(可以直接从本机拖到虚拟机)到虚拟机,并加载

创建目录/tmp/mval/data

创建目录/tmp/myql/lonf 

进入 /tmp/myql/lonf ,并把文件拖进来

创建并运行MySQL容器 

自定义构建镜像,基于ubuntu,运行java项目

新建一个空文件夹docker-demo

构建docker

运行容器

访问页面

​编辑

自定义构建镜像,基于java:8-alpine镜像,运行java项目

构建docker

访问页面

​编辑

DockerCompose

初始化compose

上传compose文件

修改权限

修改hosts文件 

补全命令

将cloud-demo微服务集群利用DockerCompose部署

下载提供的文件

把自己的cloud-demo文件的yml文件修改

将每个为微服务都打包成app.jar

将打包好的jar拷贝到提供的cloud-demo文件的每个文件夹里 

将加上jar包的cloud-demo文件上传到虚拟机

构建镜像并启动

重新启动

Docker镜像仓库 

配置docker信任地址 

创建一个yml文件

使用DockerCompose部署DockerRegistry

构建镜像并启动 

在私有镜像仓库推送或拉取镜像


安装Docker

安装yum工具

更新本地镜像源

安装docker

启动docker

关闭防火墙

关闭

禁止开机启动防火墙

查看防火墙状态:显示dead则说明关闭了

docker启动命令

启动docker

关闭docker

重启docker:

查看docker状态:running为运行中

配置镜像加速

阿里云的镜像加速文档

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

选择自己的系统,然后复制命令到虚拟机中

docker的使用

拉取nginx

查看本地镜像

镜像名字、版本(latest是最新版)、镜像id、官方的创建时间、大小 

把镜像文件nginx导出成tar文件

其中:nginx.tar是要保存成的文件、nginx:latest是要被保存的镜像名称以及版本

查看是否导出成功

删除本地镜像nginx:latest

导入镜像文件nginx

拉取redis

把镜像文件redis导出成tar文件

其中:redis.tar是要保存成的文件、redis:latest是要被保存的镜像名称以及版本

删除本地镜像redis:latest

导入镜像文件nginx

创建并运行容器 

nginx容器

创建并运行一个nginx容器

docker run:创建并运行一个容器

--name:给容器起一个名字,比如叫做mn

-p:宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口

-d:后台运行容器

nginx:镜像名称,例如nginx

查看容器运行状态

访问容器

在本机访问虚拟机里的ip加容器端口

查看容器日志

持续更新日志:此时每次访问都会打印日志出现

进入容器修改内容

进入容器nginx

docker exec:进入容器内部,执行一个命令

-it:给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互

mn:要进入的容器的名称

bash:进入容器后执行的命令,bash是一个linux终端交互命令

进入容器nginx内的html文件 

修改index文件内容

sed -i 's#需要修改的内容#要修改成的内容#g' 文件名称.后缀名

刷新页面:发现成功修改

退出容器

停止容器mn

启动容器mn

删除容器mn

redis容器

创建并运行一个redis容器,并且支持数据持久化

docker run:创建并运行一个容器

--name:给容器起一个名字,比如叫做mr

-p:宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口

-d:后台运行容器

redis:镜像名称,例如redis

--appendonly:持久化

进入容器修改内容

进入容器redis

docker exec:进入容器内部,执行一个命令

-it:给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互

mr:要进入的容器的名称

bash:进入容器后执行的命令,bash是一个linux终端交互命令

连接rides

输入数据num

读取数据num

退出容器:需要退出两次

数据卷操作

创建一个数据卷

取名字为html

查看数据卷

查看数据卷的详细信息

html为要查看的数据卷名称

删除数据卷

删除未使用的数据卷

删除某个数据卷 

这里删除html

数据卷挂载

创建一个nginx容器,修改里面的内容

创建一个nginx容器

docker run:创建并运行一个容器

--name:给容器起一个名字,比如叫做mr

-p:宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口

-d:后台运行容器

nginx:镜像名称,例如nginx

-v:冒号前面是文件名称,冒号后面是文件目录

修改该文件的内容

在文件夹里找到该文件,并修改 

在本机网页中输入虚拟机ip加端口80  

创建mysql容器,将主机目录直接挂载到容器

将mysql.tar文件上传(可以直接从本机拖到虚拟机)到虚拟机,并加载

mysql.tar文件icon-default.png?t=N7T8https://pan.baidu.com/s/19YPQmM9GRKE2LpEG3cNLIg?pwd=lvx0

创建目录/tmp/mval/data

创建目录/tmp/myql/lonf 

进入 /tmp/myql/lonf ,并把文件拖进来

hmy.cnf文件icon-default.png?t=N7T8https://pan.baidu.com/s/1TKN8xzLZ0HP3l2iLMAeoHw?pwd=z9nr

创建并运行MySQL容器 

使用本地的数据库软件访问虚拟机的数据库

可以访问成功

自定义构建镜像,基于ubuntu,运行java项目

新建一个空文件夹docker-demo

把三个文件拖进/tmp/docker-demo

三个文件icon-default.png?t=N7T8https://pan.baidu.com/s/1JtblpFkgVjUf6H_PA8i0eA?pwd=mqvy

Dockerfile文件内容为:

# 指定基础镜像
FROM ubuntu:16.04
# 配置环境变量,JDK的安装目录
ENV JAVA_DIR=/usr/local

# 拷贝jdk和java项目的包
COPY ./jdk8.tar.gz $JAVA_DIR/
COPY ./docker-demo.jar /tmp/app.jar

# 安装JDK
RUN cd $JAVA_DIR \
 && tar -xf ./jdk8.tar.gz \
 && mv ./jdk1.8.0_144 ./java8

# 配置环境变量
ENV JAVA_HOME=$JAVA_DIR/java8
ENV PATH=$PATH:$JAVA_HOME/bin

# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

构建docker

-t后面是名称,:后面是版本号,后面空格后有个点:这是路径,因为在当前路径了,所以用点

运行容器

访问页面

自定义构建镜像,基于java:8-alpine镜像,运行java项目

与基于Ubuntu不同的是,dockerfile文件的内容不同,其他都相同

dockerfile文件内容为:

# 指定基础镜像
FROM java:8-alpine

# 拷贝java项目的包
COPY ./docker-demo.jar /tmp/app.jar

# 暴露端口
EXPOSE 8090
# 入口,java项目的启动命令
ENTRYPOINT java -jar /tmp/app.jar

构建docker

-t后面是名称,:后面是版本号,后面空格后有个点:这是路径,因为在当前路径了,所以用点

访问页面

DockerCompose

初始化compose

上传compose文件

把compose文件拖到/usr/local/bin里

compose文件icon-default.png?t=N7T8https://pan.baidu.com/s/1SL7aJ3AAzK-1NXjHZVkrTA?pwd=mbe6

修改权限

修改hosts文件 

这里的ip不用改

补全命令

将cloud-demo微服务集群利用DockerCompose部署

下载提供的文件

该cloud-demo文件已经编写好了docker-compose的文件夹

cloud-demo文件icon-default.png?t=N7T8https://pan.baidu.com/s/1f72g9cSKBSU3Gs3PYF5Azg?pwd=nq8t

把自己的cloud-demo文件的yml文件修改

user-service的bootstrap.yml文件

spring:
  application:
    name: userservice #服务名称
  profiles:
    active: dev #开发环境,这里是dev
  cloud:
    nacos:
      server-addr: nacos:8848 #nacos地址
      config:
        file-extension: yaml #文件后缀名

user-service的application.yml文件 

server:
  port: 8081
spring:
  datasource:
    url: jdbc:mysql://mysql:3306/cloud_user?useSSL=false
    username: root
    password: 1234
    driver-class-name: com.mysql.jdbc.Driver
#  application:
#    name: userservice #user的微服务名称
#  cloud:
#    nacos:
#      server-addr: localhost:8848 #nacos服务地址
#      discovery:
#        cluster-name: SH #集群名称
mybatis:
  type-aliases-package: cn.itcast.user.pojo
  configuration:
    map-underscore-to-camel-case: true
logging:
  level:
    cn.itcast: debug
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS
#eureka:
#  client:
#    service-url: #eureka地址信息
#      defaultZone: http://127.0.0.1:10086/eureka

pattern:
  name: 本地环境local

order-service的application.yml文件

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://mysql:3306/cloud_order?useSSL=false
    username: root
    password: 1234
    driver-class-name: com.mysql.jdbc.Driver
  application:
    name: orderservice #order的微服务名称
  cloud:
    nacos:
      server-addr: nacos:8848
#      discovery:
#        cluster-name: HZ #集群名称
##        namespace: 8279562b-ce89-420a-b765-f8b2adfdbe49 #命名空间id
#        ephemeral: false #是否为临时实例
mybatis:
  type-aliases-package: cn.itcast.user.pojo
  configuration:
    map-underscore-to-camel-case: true
logging:
  level:
    cn.itcast: debug
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS
#eureka:
#  client:
#    service-url: #eureka地址信息1
#      defaultZone: http://127.0.0.1:10086/eureka
userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule #负载均衡规则:随机。范围:userservice服务
ribbon:
  eager-load:
    enabled: true #开启饥饿加载
    clients:  #指定饥饿加载的服务
      - userservice
#feign:
#  client:
#    config:
#      default: #这里用default就是全局配置,如果是写服务名称,则是针对某个微服务的配置
#        loggerLevel: FULL #日志级别
feign:
  httpclient:
    enable: true #支持httpClient的开关
    max-connections: 200 #最大连接数
    max-connections-per-route: 50 #单个路径的最大连接数

gateway的application.yml文件 

server:
  port: 10010 #网关端口
spring:
  application:
    name: gateway #服务名称
  cloud :
    nacos:
      server-addr: nacos:8848 #nacos地址
    gateway:
      routes: #网关路由配置
        - id: user-service #路由id,自定义,只要唯一即可
        # uri: http://127.0.0.1:8081 #路由的目标地址 http就是固定地址
          uri: lb://userservice #路由的目标地址lb就是负载均衡,后面跟服务名称
          predicates: #路由断言,也就是判断请求是否符合路由规则的条件
            - Path=/user/** #这个是按照路径匹配,只要以/user/开头就符合要求
#          filters:
#            - AddRequestHeader=Truth,Itcast is freaking awesome! #添加请求头
        - id: order-service #路由id,自定义,只要唯一即可
          uri: lb://orderservice #路由的目标地址lb就是负载均衡,后面跟服务名称
          predicates: #路由断言,也就是判断请求是否符合路由规则的条件
            - Path=/order/** #这个是按照路径匹配,只要以/user/开头就符合要求
#            - After=2031-04-13T15:14:47.433+08:00[Asia/Shanghai] #要求访问时间在这个之后
            - Before=2031-04-13T15:14:47.433+08:00[Asia/Shanghai] #要求访问时间在这个之后
      default-filters: #默认过滤器,会对所有的路由请求都生效
        - AddRequestHeader=Truth,Itcast is freakina awesome! #添加情求头
      globalcors: # 全局的跨域处理
        add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题
        corsConfigurations:
          '[/**]':
            allowedOrigins: # 允许哪些网站的跨域请求
              - "http://localhost:8090"
              - "http://www.leyou.com"
            allowedMethods: # 允许的跨域ajax的请求方式
              - "GET"
              - "POST"
              - "DELETE"
              - "PUT"
              - "OPTIONS"
            allowedHeaders: "*" # 允许在请求中携带的头信息
            allowCredentials: true # 是否允许携带cookie
            maxAge: 360000 # 这次跨域检测的有效期

将每个为微服务都打包成app.jar

将打包好的jar拷贝到提供的cloud-demo文件的每个文件夹里 

我提供的cloud-demo已经把jar包安好了,但是你还是需要重新把自己的jar包覆盖我的,不然可能报错

将加上jar包的cloud-demo文件上传到虚拟机

拖到/tmp中 

构建镜像并启动

输入docker-compose logs -f,查看日志,会发现报错。这是因为nacos还未启动就启动了其他的微服务,所以这里重启启动这三个微服务 

重新启动

访问网页,发现可以成功

Docker镜像仓库 

配置docker信任地址 

我们的私服采用的是http协议,默认不被Docker信任,所以需要做一个配置。

这里的xxx要填虚拟机的ip地址

创建一个yml文件

使用DockerCompose部署DockerRegistry

打开刚刚创建的yml文件,把下面的配置粘贴进去

构建镜像并启动 

访问网页,发现成功

在私有镜像仓库推送或拉取镜像

代码文件点击下载icon-default.png?t=N7T8https://pan.baidu.com/s/1v78HH8Xm5tlThBIDVqgzMw?pwd=1vjo

上一篇:Gateway网关的配置和使用

下一篇:RabbitMQ的安装和使用

举报

相关推荐

0 条评论