当前位置:网站首页 > 职业软技能 > 正文

单机版 笔记软件(单机版笔记软件哪个好)



云原生Java 架构师的第一课K8s + Docker + KubeSphere + DevOps

Docker仓库:https://hub.docker.com/

编码开发微服务、上线部署容器化、时时刻刻要监控、devops。

一次镜像,处处运行。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作

虚拟机与 Docker

Docker 运行在CentOS 7 (64-bit)上,要求系统为64位、Linux系统内核版本为 3.8以上。

测试是否成功 docker run hello-world (本地没有这个景象,是从仓库拉取的)

配置阿里云镜像加速,这个看脑图吧。配置完后,在执行 docker run hello-world 就会很快了,(上图虽然没配置上面等了一段时间才打出来。)

镜像、容器、仓库。

先从本地拉镜像,本地没有,从仓库找。

1.2.1 镜像

1.2.2 容器

1.2.3 仓库

仓库(Repository)是集中存放镜像文件的场所。

2.1.1 docker run -it

docker run -it ubuntu /bin/bash

docker ps 查看所有正在运行的容器

可以看到IMAGE ubuntu 镜像正在运行,CONTAINER ID 容器ID,和上面 root@e34084 是一样的。

docker run -it --name=myu1 ubuntu bash,又启动了一个容器,这次NAMES 为 myu1,前面返回了容器ID 就是正常启动了。新开一个终端查看 docker ps。

2.2.1 docker run -d

上面 run -it 都是前台交互式启动, 后台守护式启动 run -d,比如 redis。

docker logs 容器ID,查看日志,比如redis

docker exec -it acb16932c06b /bin/bash 进入容器。 一般用 -d 后台启动,然后 exec 进入对应容器实例。

2.2.3 从容器内拷贝文件到主机上

docker cp 容器ID:容器内路径目的主机路径

docker export 927e21b06561 > /root/exportUbutun.tar 导出容器到主机上

cat exportUbutun.tar | docker import - cg/ubuntu:1.0 导入导出的容器,进入到这个容器 a.txt 还在。

2.2.4 复制容器生成一个新的镜像

https://cr.console.aliyun.com/cn-beijing/instances 阿里云容器镜像服务

3.1.1 镜像推送到阿里云

创建命令空间,创建镜像仓库。在从本地推送镜像到阿里云。

3.1.2 从阿里云拉取镜像

docker pull registry.cn-beijing.aliyuncs.com/cgxin/myubuntu:1.1

3.2.1 镜像推送到私服库

原来什么也没有的 ubuntu,安装了 net-tools 在exit,下次进入就没有了。Ctrl + P + Q,然后将整个容器生成一个新的镜像,整个新的镜像是有 net-tools的。在 stop 原来的ubuntu,run -it 新的镜像即可。

docker commit -m=“ifconfig cmd add ok” -a=“cg” 4c6f298ddda8 cgubuntu:1.0

curl -XGET http://localhost:5000/v2/_catalog 验证私服库上有什么镜像。(localhost 是私服库的ip)

docker tag cgubuntu:1.0 localhost:5000/cgubuntu:1.0

没配置成功啊,修改了配置,docker就起不来了。(docker 20.10.9 允许http 推送镜像…)

docker push localhost:5000/cgubuntu:1.0

3.2.2 从私服库拉取镜像

必须要记住版本号,没有版本号,没法拉取。

然后 run -it,ifconfig 测试可行。

就会进入到 ubuntu 镜像创建的一个容器里,

有点 vue 中 v-model 双向绑定的意思。

docker inspect 803b5d9531c0 查看容器挂载信息。

这个 u1 和 u2 docker ps 最后一列 name 可以看到。

继承过来了。

docker run -d -p 8081:8080 --name t1 tomcat

tomcat8 不需要修改上面的 webapps.dist 就可以访问猫首页。

上面这是简单版的,删除容器后数据就都没了。

高级篇 Mysql主从复制★(亲测成功)

server_id=101

binlog-ignore-db=mysql

log-bin=mall-mysql-bin

binlog_cache_size=1M

binlog_format=mixed

binlog_expire_logs_seconds=7

replica_skip_errors=1062

server_id=102

binlog-ignore-db=mysql

log-bin=mall-mysql-slave1-bin

binlog_cache_size=1M

binlog_format=mixed

expire_logs_days=7

slave_skip_errors=1062

relay_log=mall-mysql-relay-bin

log_slave_updates=1

read_only=1

docker restart mysql-master

然后在主数据库中 show master status;

出现如上。

Bug:Mysql 8.0 采用新的身份验证插件。(caching_sha2_password), 原来的身份验证插件为(mysql_native_password)

终于连接成功了!

一套丝滑走完。 但是删了也就凉凉了。

测试文件生效,在 redis.conf 的 databases 16 是16个库(015),改成10个库(09)
docker restart myr3
docker exec -it myr3 /bin/bash
redis-cli
然后在 select 15 时候就会报错了(因为并没有16库了。)










高级篇★Redis 集群(3主3从)

搭建Redis 集群3主3从

docker run -d --name redis-node-2 --net host --privileged=true -v /cg/redis/share/redis-node-2:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6382

docker run -d --name redis-node-3 --net host --privileged=true -v /cg/redis/share/redis-node-3:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6383

docker run -d --name redis-node-4 --net host --privileged=true -v /cg/redis/share/redis-node-4:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6384

docker run -d --name redis-node-5 --net host --privileged=true -v /cg/redis/share/redis-node-5:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6385

docker run -d --name redis-node-6 --net host --privileged=true -v /cg/redis/share/redis-node-6:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6386

hash slot 哈希槽,3个槽;0:0 - 5640、1:5461 - 10922、2:10923 - 16383

可以看到6381、6382、6383 是 master,6381的 slave 是6384,和下图一样。

查看主从节点关系:

stop 6381,6384上位:

依旧可以 get 值。

6381 恢复后,6381 是 slave,想让6381 当 master的话,需要 stop 6384,然后在 start 6384

再查看集群状态:redis-cli --cluster check ip:6381

查看 key的存储情况:

查看 9.3 Portainer 操作配置 nginx

Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维,三者缺一不可,合力充当Docker体系的基石。

Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。

之前是拉取镜像ubuntu ,不含有 vim/ifconfig … 这些命令,安装后, docker commit 构建功能更加强大的 ubuntu++ 镜像。每次增加功能,随时变化都需要 docker commit 构建新的镜像。这样很不方便。

Dockerfile 构建镜像3步骤:编写 Dockerfile文件,docker build 构建镜像,docker run 镜像运行容器实例。

6.2.1 保留字

更多详细的,看脑图吧。特别是 ENTRYPOINT 和 CMD。

6.2.2 Tomcat8 的 Dockerfile

6.2.2.1 WOEKDIR 落脚点

6.2.2.2 EXPOSE 和 CMD

6.2.3 Dockerfile 案例 - centos7

Centos7拉取下来是什么也没有,现在让Centos7镜像具备vim + ifconfig + jdk8。

注意:用centos7,docker pull centos:7,centos8 会报错的。

EXPOSE 80

Dockerfile 构建镜像(需要在当前目录下)

出现 Successfully 即是成功,本地镜像没有centos:7,FROM centos:7 会从远程拉取了。

EXPOSE 80

01. 建项目

随便建一个项目,打成一个 jar包。(可以看脑图建一个)

02. 写 Dockerfile

FROM java:8

MAINTAINER

VOLUME /tmp

ADD docker_boot.jar cgxin_docker.jar

将 Dockerfile 和 jar包放在同一目录下:

03. 构建镜像

docker build -t cgxin_docker:1.0 .

04. 运行镜像

docker run -d -p 8080:8080 cgxin_docker:1.0

访问成功!

容器间的互联和通信以及端口映射,容器IP变动时候可以通过服务名直接网络通信而不受到影响。

启动docker后,产生一个 docker0 的虚拟网桥。

Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的Container-IP直接通信。

docker run 的时候没有指定network的话默认使用的网桥模式就是bridge,使用的就是docker0。在宿主机ifconfig,就可以看到docker0和自己create的network(后面讲)eth0,eth1,eth2……代表网卡一,网卡二,网卡三……,lo代表127.0.0.1,即localhost,inet addr用来表示网卡的IP地址

7.2.1 bridge

启动两个容器后,在主机 ip address,可以看到多了个2个ip

在启动一个 u1 容器,查看 ip address,发现也增加了一个 ip。 (网络模式用 bridge 时)

7.2.2 host

docker run -d -p 8083:8080 --network host --name tomcat83 billygoo/tomcat8-jdk8

docker run -d --network host --name tomcat83 billygoo/tomcat8-jdk8

可以看到并没有增加新的 ip,而是和主机共用一个。

真的牛,亲测可以访问的, 8080 8081 8082 都可以进猫网。

7.2.3 none

禁用网络功能,只有lo标识(就是127.0.0.1表示本地回环)

7.2.4 container

7.2.5 自定义网络★

自定义网络本身就维护好了主机名和ip的对应关系(ip和域名都能通)

进入容器实例,互相 ping ip 和服务名。

结论:自定义网络本身就维护好了主机名和ip的对应关系(ip和域名都能通)

查看容器网络:docker inspect u1 | tail -n 20

Compose 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。 容器启动需要有加载顺序,比如 jar包,需要先启动mysql + redis容器。

改造 6.4 写的项目,添加上 mysql 和 redis,这就需要mysql 和 redis 环境。

8.3.1 改造项目

8.3.2 构建镜像

Dockerfile 还是原来,没有改动。

docker build -t cgxin_docker:1.1 .

8.3.3 编排容器

8.3.3.1 不使用compose
8.3.3.2 使用 compose 编排项目★

想了很久很久啊。还是不编排了,阿里云服务器上本来就装了redis 和 mysql 环境了,下面还要在搭一个镜像。需要先 stop 原来的,然后其这个容器,测试完了后,在 start 原来的那些。mysql 还好说, redis 那个配置文件都在另一份笔记上了。嗯,这里不测试了,就写写吧。

编写 docker-compose.yml

version: “3”

  • “8080:8080”
    volumes:

  • /01exec/01docker/02docker_boot/microService:/data
    networks:

  • cgxin_net
    depends_on:

  • redis
  • mysql
  • “6379:6379”
    volumes:

  • /cg/redis/docker_boot/redis.conf:/etc/redis/redis.conf
  • /cg/redis/docker_boot/redis/data:/data
    networks:

  • cgxin_net
    command: redis-server /etc/redis/redis.conf

  • “3306:3306”
    volumes:

  • /cg/redis/docker_boot/mysql/db:/var/lib/mysql
  • /cg/redis/docker_boot/mysql/conf/my.cnf:/etc/my.cnf
  • /cg/redis/docker_boot/mysql/init:/docker-entrypoint-initdb.d
    networks:

  • cgxin_net
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问

构建镜像

docker netword ls,可以看到自己创建了新的网络。

关停

Portainer 是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。

官网:https://docs.portainer.io/v/ce-2.9/start/install/server/docker/linux

http://ip:9000/

第一次登录需要创建admin。

可以手动启动容器。

9.3.1 拉取镜像

Pull the Image

9.3.2 部署容器

Deploy the container:部署容器。下面可以进行一个更多的设置。

部署后,浏览器访问 nginx,可以看到成功了。 Docker 是真牛啊!

CAdvisor监控收集 + InfluxDB存储数据 + Granfana展示图表

  • PRE_CREATE_DB=cadvisor
    ports:

  • “8083:8083”
  • “8086:8086”
    volumes:

  • https://blog.51cto.com/u_/data/influxdb:/data
  • influxdb:influxsrv
    command: -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxsrv:8086
    restart: always
    ports:







  • “8080:8080”
    volumes:

  • /:/rootfs:ro
  • /var/run:/var/run:rw
  • /sys:/sys:ro
  • /var/lib/docker/:/var/lib/docker:ro
  • influxdb:influxsrv
    ports:

  • “3000:3000”
    volumes:

  • grafana_data:/var/lib/grafana
    environment:

  • HTTP_USER=admin
  • HTTP_PASS=admin
  • INFLUXDB_HOST=influxsrv
  • INFLUXDB_PORT=8086
  • INFLUXDB_NAME=cadvisor
  • INFLUXDB_USER=root
  • INFLUXDB_PASS=root

所以下面配置 Granfana 中的 panel 时,写的数据库用的域名InfluxDB。

CAdvisor:http://ip:8080/

InfluxDB:http://ip:8083/

Granfana:http://ip:3000/

默认账号密码:admin / admin

配置数据源:

出现上面 Data Souce is working 即是成功。

配置面板 panel:

这样子,就配置完成了。

到此这篇单机版 笔记软件(单机版笔记软件哪个好)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • modbus报文解析实例(modbus报文分析软件)2025-07-02 10:09:05
  • 划词翻译插件有哪些(划词翻译插件有哪些软件)2025-07-02 10:09:05
  • j—flash使用方法(j-flash是什么软件)2025-07-02 10:09:05
  • yml文件用什么软件打开(yml文件应该用什么打开)2025-07-02 10:09:05
  • 电脑海报制作网站(电脑海报制作软件)2025-07-02 10:09:05
  • 获取位置信息失败怎么解决手机(获取位置信息失败怎么解决手机软件)2025-07-02 10:09:05
  • 博图程序块密码破解(博图程序块密码查看软件)2025-07-02 10:09:05
  • ubuntu更新软件源慢(ubuntu 更新软件源)2025-07-02 10:09:05
  • 工具类软件定义(工具类软件定义及分类)2025-07-02 10:09:05
  • 笔记本电脑手写软件(笔记本电脑手写软件推荐)2025-07-02 10:09:05
  • 全屏图片