首页 > 其他分享 >Docker(2)--图形化及编排

Docker(2)--图形化及编排

时间:2023-09-08 17:35:40浏览次数:49  
标签:compose -- app redis 图形化 mysql docker Docker

1.Docker图形化界面

图形化界面直接使用命令下载,其本身也是一个镜像

docker run -id -p 8000:8000 -p 9000:9000 --name=portainer     --restart=always     -v /var/run/docker.sock:/var/run/docker.sock     -v portainer_data:/data     portainer/portainer

 

下载后直接在浏览器访问 虚拟机/服务器:9000

1.进入后设置密码

2.选择本地(local)

3.

在其中,可以对镜像,容器等进行增删改操作

2.Docker服务编排

  描述:

docker建议我们每一个容器中只运行一个服务,因为docker容器本身占用资源极少,所以最好是将每个服务单独的分割开来但是这样我们又面临了一个问题?

如果我需要同时部署好多个服务,难道要每个服务单独写Dockerfile然后在构建镜像,构建容器,这样累都累死了,所以docker官方给我们提供了docker-compose多服务部署的工具

Compose允许用户通过一个单独的docker-compose.yml模板文件[你写](YAML 格式)来定义一组相关联的应用容器为一个项目(project)

可以很容易地用一个配置文件定义一个多容器的应用,然后使用一条指令安装这个应用的所有依赖,完成构建。Docker-Compose 解决了容器与容器之间如何管理编排的问题

 

2.1 Docker Compose 安装使用

使用命令进行安装

# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。 
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 设置文件可执行权限 
chmod +x /usr/local/bin/docker-compose

# 查看版本信息 
docker-compose -version

【注:因为其下载地址在GitHub仓库中,所以在下载中可能会出现失败现象,重试下载命令即可】

下载成功!

2.2 使用docker compose编排springboot+redis+mysql项目

首先在linux系统上创建一个docker目录

我的创建地址 /app/docker 

  

打包springboot工程,可以是一个完整的工程,我在其中写了增删改查功能,使用到了mysql、redis(为了测试使用)

编写dockerfile文件:

FROM java:8
MAINTAINER baby<[email protected]>
ADD DockerTestProject-0.0.1-SNAPSHOT.jar test.jar
EXPOSE 8080
CMD java -jar test.jar

其中,这两个文件放入到docker目录中的project目录(没有就创建一个)

 

编写 docker-compose.yml 文件

version: "3"
services:
  micro_service:
    container_name: myp1
    build:
      context: ./project    #dockerfile文件和jar包所在位置
      dockerfile: dockerfile #dockerfile文件名
    ports:
      - "8080:8080"
    volumes:
      - /app/microService:/data
    networks:
      - aaa_net
    depends_on:
      - myredis
      - mymysql
  myredis:
    image: redis:6.0.20
    ports:
      - "6379:6379"
    volumes:
      - /app/redis/redis.conf:/etc/redis/redis.conf  # 必须在宿主机中存在my.cnf文件
      - /app/redis/data:/data
    networks:
      - aaa_net
    command: redis-server /etc/redis/redis.conf
  mymysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 'root'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_DATABASE: 'aaasql'
    ports:
      - "3306:3306"
    volumes:
      - /app/mysql/db:/var/lib/mysql
      - /app/mysql/my.cnf:/etc/my.cnf # 必须在宿主机中存在my.cnf文件
      - /app/mysql/init:/docker-entrypoint-initdb.d
    networks:
      - aaa_net
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问
networks:
  aaa_net:

 

编写数据卷:

redis与mysql的数据卷绑定在我上一篇就以实验过

详情查看:https://www.cnblogs.com/9--1/p/17683130.html

my.cnf

[client]
default_character_set=utf8
[mysqld]
collation_server = utf8_general_ci
character_set_server = utf8

 

连接远程数据库:

将项目需要的数据库文件在远程数据中复现

比如我在本地需要一个aaa库和student表

那么将这些数据连接远程数据库后复制到其中

那么在项目中的mysql配置文件可以写成这样:

这样就可以动态的移动整个项目,哪怕换一个服务器也可以照样运行

 

测试运行:

在/app/docker 目录中运行命令:

docker-compose up


以上便是Docker(2)--图形化及编排中的内容,如有漏缺请在下方留言告知,我会及时补充 

标签:compose,--,app,redis,图形化,mysql,docker,Docker
From: https://www.cnblogs.com/9--1/p/17688049.html

相关文章

  • 接口文档、jwt
    接口文档作为后端,接口写好了作为前端,需要使用我们写的接口(移动端、web、桌面端)后端需要写接口文档接口文档的展现形式:1、word,md,写好传到公司的某个平台,前端可以下载2、自动生成接口文档,后端通过配置,把所写的接口都自动生成,一个地址访问这个地址就能看到所有接口文档......
  • C# 信号量 Semaphore
    ///<summary>///信号量,类似于占坑机制,初始设为5个空的坑位,且最大5个位置///</summary>staticreadonlySemaphoresemaphore=newSemaphore(5,5);staticvoidTest(){Task.Run(AAA);BBB();......
  • test20230908
    写在前面的话今天考试挂麻了,考场估分\(100+100+60+50=310\),考后得分\(100+70+60+0=230\)。十分抽象的分数。还是有\(\text{rank2}\),之后需要更加细心才行。T1题目描述现在给出\(x\&y\)和\(x\oplusy\),希望求出\(x|y\)。题目保证存在合法的\(x,y\)。思路点拨......
  • CH59X/CH58X/CH57X sleep模式下串口唤醒收发数据
    整体程序逻辑:下方的具体程序及使用是基于CH592进行的SLEEP模式睡眠唤醒是由协议栈管理的,还在睡眠时,无法接收到数据。已经通过使能HAL_SLEEP开启睡眠。如果需要在睡眠时实时接收串口传来的数据是不可行的,需要先将设备唤醒之后再进行串口数据的接收;将唤醒的条件设置为下降沿唤醒......
  • 获取在电脑上的apk的appPackage和appActivity
    如果开发有给apk,那么可以在电脑上通过以下方法获得appPackage和appActivitycmd进入appt路径  然后输入指令(apk路径不要含有中文)aaptdumpbadgingapk路径(D:\**\**\**.apk)以上输出结果过多,我们可以按以下指令获取我们需要的数据获取appPackageaaptdumpbadgin......
  • 差集并集
    #include<iostream>#include<algorithm>#include<set>#include<string>#include<vector>#include<utility>#include<cstdlib>#include<ctime>usingnamespacestd;template<typenameT>void_inte......
  • NGINX开机自动启动
      借助WindowsServiceWrapper工具,将Nginx转换为Windows服务,在服务中心配置自启动,从而在开机时windows自行启动Nginx服务。1、自启动工具下载 工具下载地址:https://github.com/winsw/winsw/releases 2、自启动工具安装  下载后将该工具放入Nginx的安装目录下,并且将其......
  • 密码协议学习笔记(3):实体认证协议
    基于对称密码的实体认证:对称密码,一次传输,单向认证:Alice与Bob拥有一个共享的对称密钥$k_{A,B}$,某次传输中,Bob要验证对面的通信者是Alice,只需要让Alice发送用该密钥加密的Bob的ID以及时间戳($T_A$)或序列号($SN_A$)(防止重放攻击),如果Bob得到的密文解密后确实是有意义的信......
  • java 支持 超大上G,多附件上传示例解析
    ​ 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。先说下要求:PC端全平台支持,要求支持Windows,Mac,Linux支持所有浏览器。支持文件批量上传支持文件夹上传,且要求在服务端保留层级结构。文件夹数量要求支持到10W......
  • 【题解】AtCoder Regular Contest 161
    评价:感觉这场题目质量不咋地啊,都是一些乱搞题A.MakeM题目描述:\(N\)是一个正奇数。我们称一个长度为\(N\)的序列\(S\)是M型序列,当前仅当对于所有的\(i=2,4,6,\dots,N-1\)(即偶数位),都有\(S_{i-1}<S_{i}\)且\(S_{i}>S_{i+1}\)。现在给定你一个长度为\(N\)的序列\(A......