培训第三十五天(容器的基础命令使用)

news2024/11/16 9:55:00

1、创建一个容器并同时执行echo命令

 # 快速启动一个容器执行特定的一次性命令并查看输出结果,输出结果后容器直接退出
 [root@docker ~]# docker run -it --name=a0 centos:latest echo "abc"
 abc
 [root@docker ~]# docker ps
 CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
 [root@docker ~]# docker ps -a
 CONTAINER ID   IMAGE           COMMAND       CREATED         STATUS                     PORTS     NAMES
 a1c0c9551a19   centos:latest   "echo abc"    8 seconds ago   Exited (0) 7 seconds ago             a0
 41c9a7796fde   centos:latest   "/bin/bash"   19 hours ago    Exited (0) 13 hours ago              c0

2、删除容器

 # 删除名为a0的容器
 [root@docker ~]# docker rm  a0
 a0
 # 开启容器
 [root@docker ~]# docker start c0
 c0
 [root@docker ~]# docker ps
 CONTAINER ID   IMAGE           COMMAND       CREATED        STATUS         PORTS     NAMES
 41c9a7796fde   centos:latest   "/bin/bash"   19 hours ago   Up 3 seconds             c0
 # 由于该容器正在运行不能直接删除
 [root@docker ~]# docker rm c0
 Error response from daemon: cannot remove container "/c0": container is running: stop the container before removing or force remove
 # 使用-f选项强制移除正在运行中的容器
 [root@docker ~]# docker rm -f c0
 c0

3、设置远程管理

 # 自己规定套接字文件的位置并通过TCP协议在所有网络接口(0.0.0.0代表监听所有IP地址)的2375端口上接受连接
 [root@docker ~]# vim /etc/docker/daemon.json 
         "hosts" : [
                 "tcp://0.0.0.0:2375",
                 "unix:///var/run/docker.sock"
         ]
 # 启动Docker服务时执行的命令为/usr/bin/dockerd,即启动Docker守护进程
 [root@docker ~]# vim /usr/lib/systemd/system/docker.service 
 ExecStart=/usr/bin/dockerd
 # 重新加载系统的服务管理器配置
 [root@docker ~]# systenctl daemon-reload
 # 重新启动Docker服务,使对Docker服务配置文件的修改生效
 [root@docker ~]# systemctl restart docker
 # version用于查看指定IP地址(10.0.0.100)上的Docker版本信息;images用于查看指定IP地址上的Docker镜像列表。命令中的参数-H用于指定连接到的 Docker守护进程的地址
 [root@docker ~]# docker -H10.0.0.100 varsion|images

4、docker image中pull的使用,从镜像仓库中下载镜像

 [root@docker ~]# docker image --help
   pull        Download an image from a registry
 [root@docker ~]# docker image pull --help
 Usage:  docker image pull [OPTIONS] NAME[:TAG|@DIGEST]
 Download an image from a registry
 Aliases:
   docker image pull, docker pull
 Options:
   -a, --all-tags                Download all tagged images in the repository
       --disable-content-trust   Skip image verification (default true)
       --platform string         Set platform if server is multi-platform capable
   -q, --quiet                   Suppress verbose output
 # 从仓库中拉取centos的镜像
 [root@docker ~]# docker image pull -q centos
 # 查看本地镜像
 [root@docker ~]# docker images
 REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
 centos       latest    5d0da3dc9764   2 years ago   231MB

5、使用save将镜像打包

 # 查看帮助文件,找到save,可以将镜像保存为一个tar包
 [root@docker ~]# docker --help
   save        Save one or more images to a tar archive (streamed to STDOUT by default)
 # 查看save使用方式
 [root@docker ~]# docker save  --help
 Usage:  docker save [OPTIONS] IMAGE [IMAGE...]
 Save one or more images to a tar archive (streamed to STDOUT by default)
 Aliases:
   docker image save, docker save
 Options:
   -o, --output string   Write to a file, instead of STDOUT
 # 查看现有镜像
 [root@docker ~]# docker images
 REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
 centos       latest    5d0da3dc9764   2 years ago   231MB
 # 打包镜像
 [root@docker ~]# docker save -o centos.tar centos:latest
 # 可以将tar发给其他用户,也可以作为备份
 [root@docker ~]# ls
 anaconda-ks.cfg  centos.tar  v

6、使用rmi删除镜像

 [root@docker ~]# docker --help
   rm          Remove one or more containers
   rmi         Remove one or more images
 [root@docker ~]# docker ps -a
 CONTAINER ID   IMAGE           COMMAND       CREATED         STATUS                     PORTS     NAMES
 6e2dbeb436db   centos:latest   "/bin/bash"   9 seconds ago   Exited (0) 4 seconds ago             c0
 # 由于有容器在使用该镜像,所以不能直接删除该镜像
 [root@docker ~]# docker rmi centos:latest 
 Error response from daemon: conflict: unable to remove repository reference "centos:latest" (must force) - container 6e2dbeb436db is using its referenced image 5d0da3dc9764
 # 删除容器,退出容器up状态
 [root@docker ~]# docker rm c0
 c0
 [root@docker ~]# docker rmi centos:latest 
 Untagged: centos:latest
 Untagged: centos@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
 Deleted: sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6
 Deleted: sha256:74ddd0ec08fa43d09f32636ba91a0a3053b02cb4627c35051aff89f853606b59
 [root@docker ~]# docker images
 REPOSITORY   TAG       IMAGE ID   CREATED   SIZE

7、使用load从tar文件中引入镜像

 [root@docker ~]# docker --help
 load        Load an image from a tar archive or STDIN
 [root@docker ~]# docker load --help
 Usage:  docker load [OPTIONS]
 Load an image from a tar archive or STDIN
 Aliases:
   docker image load, docker load
 Options:
   -i, --input string   Read from tar archive file, instead of STDIN
   -q, --quiet          Suppress the load output
 [root@docker ~]# docker load -i centos.tar 
 74ddd0ec08fa: Loading layer  238.6MB/238.6MB
 Loaded image: centos:latest
 [root@docker ~]# docker images
 REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
 centos       latest    5d0da3dc9764   2 years ago   231MB

8、使用export封装镜像,使用import导入镜像

 [root@docker ~]# docker run -it --name c0 centos:latest /bin/bash
 [root@5906fffd3383 /]# cd /etc/yum.repos.d     
 [root@5906fffd3383 yum.repos.d]# rm -rf *
 [root@5906fffd3383 yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
 100  2495  100  2495    0     0   6316      0 --:--:-- --:--:-- --:--:--  6316
 [root@5906fffd3383 yum.repos.d]# ls
 CentOS-Base.repo
 [root@5906fffd3383 yum.repos.d]# yum -y install epel
 [root@5906fffd3383 yum.repos.d]# yum clean all && yum makecache
 # 保持容器是运行状态
 [root@41c9a7796fde /]# read escape sequence
 # 查看帮助文档
 [root@docker ~]# docker --help
 [root@docker ~]# docker export --help
 Usage:  docker export [OPTIONS] CONTAINER
 Export a container's filesystem as a tar archive
 Aliases:
   docker container export, docker export
 Options:
   -o, --output string   Write to a file, instead of STDOUT
 # 使用指令,将容器导出为tar包
 [root@docker ~]# docker export -o centos_yum.tar c0
 # 查看新生成的tar包
 [root@docker ~]# ls
 anaconda-ks.cfg  centos.tar  centos_yum.tar  v
 # 查看帮助文档
 [root@docker ~]# docker --help
 [root@docker ~]# docker import --help
 Usage:  docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
 Import the contents from a tarball to create a filesystem image
 Aliases:
   docker image import, docker import
 Options:
   -c, --change list       Apply Dockerfile instruction to the created image
   -m, --message string    Set commit message for imported image
       --platform string   Set platform if server is multi-platform capable
 # 使用指令,
 [root@docker ~]# docker import -m yum centos_yum.tar centos:yum
 sha256:f3ca4715914e87e2d1527365e66775d9ab47b2a0208128e3ec52c0d45c364146
 # 查看镜像
 [root@docker ~]# docker images
 REPOSITORY   TAG       IMAGE ID       CREATED              SIZE
 centos       yum       f3ca4715914e   About a minute ago   326MB
 centos       latest    5d0da3dc9764   2 years ago          231MB

练习:制作httpd镜像

 [root@docker ~]# docker run -it --name c0 centos:yum1 /bin/bash
 [root@865090f46fbd /]# yum -y install httpd
 [root@865090f46fbd /]# echo "aaa" > /var/www/html/index.html
 [root@865090f46fbd /]# httpd -k start
 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.3. Set the 'ServerName' directive globally to suppress this message
 [root@c717adc1969a /]# [root@docker ~]#
 [root@docker ~]# docker ps
 CONTAINER ID   IMAGE         COMMAND       CREATED          STATUS          PORTS     NAMES
 865090f46fbd   centos:yum1   "/bin/bash"   44 seconds ago   Up 44 seconds             c0
 [root@docker ~]# docker export -o centos_httpd.tar c0
 [root@docker ~]# docker import -m httpd centos_httpd.tar centos:httpd
 sha256:195d7f041bf5c9e17f5cfe172c85c6d2e7d11241e530e839dfe7770186296bb1
 [root@docker ~]# docker images
 REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
 centos       httpd     195d7f041bf5   13 seconds ago   268MB
 centos       yum1      a2a0a138806b   3 hours ago      260MB
 centos       latest    5d0da3dc9764   2 years ago      231MB
 [root@docker ~]# docker run -it --name c0 centos:httpd /bin/bash
 [root@5f6e6f840b2b /]# httpd -k start
 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.4. Set the 'ServerName' directive globally to suppress this message
 [root@5f6e6f840b2b /]# curl localhost  
 hh

9、查看容器ip地址的方法

 # 直接进入到容器中查看IP地址
 [root@docker ~]# docker attach c1
 [root@452771f307cc /]# ip addr
 inet 172.17.0.3/16 brd 172.17.255.255 scope 
 # 查看容器信息,可以查看ip地址
 [root@docker ~]# docker inspect c0
 # 在外部调用指令,查看容器ip地址
 [root@docker ~]# docker exec  c1 ip a
 inet 172.17.0.3/16 brd 172.17.255.255 scope 

练习测试:使用exec touch一个文件

 [root@docker ~]# docker exec  c1 touch 1.txt
 [root@docker ~]# docker attach c1
 [root@452771f307cc /]# ls
 1.txt  dev  home  lib64       media  opt   root  sbin  sys  usr
 bin    etc  lib   lost+found  mnt    proc  run   srv   tmp  var

10、容器中虚拟端口映射

 # 将容器中的80端口映射到宿主机(docker主机)的80端口   -p宿主机端口:容器端口
 [root@docker ~]# docker run -it --name c2 -p80:80/tcp centos:httpd1 /bin/bash
 [root@5f6e6f840b2b /]# httpd -k start
 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.4. Set the 'ServerName' directive globally to suppress this message
 [root@5f6e6f840b2b /]# curl localhost  
 hh
 [root@5f6e6f840b2b /]# [root@docker ~]# 
 [root@docker ~]# docker inspect c2
 "IPAddress": "172.17.0.4",
 [root@docker ~]# curl 172.17.0.4
 hh
 # 浏览器访问宿主机的80端口

 # 将容器中的80端口映射到宿主机(docker主机)的12345端口
 [root@docker ~]# docker run -it --name c3 -p12345:80 centos:httpd1 /bin/bash
 # 需要启动服务
 [root@fa074e53e1d6 /]# curl localhost  
 curl: (7) Failed to connect to localhost port 80: Connection refused
 [root@fa074e53e1d6 /]# httpd -k start
 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.5. Set the 'ServerName' directive globally to suppress this message
 [root@fa074e53e1d6 /]# curl localhost
 hh
 [root@fa074e53e1d6 /]# [root@docker ~]# 
 [root@docker ~]# docker ps
 CONTAINER ID   IMAGE           COMMAND       CREATED          STATUS          PORTS                                     NAMES
 fa074e53e1d6   centos:httpd1   "/bin/bash"   5 minutes ago    Up 5 minutes    0.0.0.0:12345->80/tcp, :::12345->80/tcp   c3
 5f6e6f840b2b   centos:httpd1   "/bin/bash"   13 minutes ago   Up 13 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp         c2
 # 浏览器访问宿主机的12345端口

 # 宿主机上所有端口的应用情况,防止映射端口时产生端口冲突
 [root@docker ~]# less /etc/services
 # 停止容器
 [root@docker ~]# docker stop c0 c1 c2 c3
 c0
 c1
 c2
 c3
 # 删除容器
 [root@docker ~]# docker rm c0 c1 c2 c3
 c0
 c1
 c2
 c3
 # 随机为容器指定映射端口(映射端口大于等于32767端口)
 [root@docker ~]# docker run -it --name c0 -p80 centos:httpd1 /bin/bash
 [root@46580643be3c /]# httpd -k start
 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
 [root@46580643be3c /]# curl localhost  
 hh
 [root@46580643be3c /]# [root@docker ~]# 
 [root@docker ~]# docker ps 
 CONTAINER ID   IMAGE           COMMAND       CREATED          STATUS          PORTS                                     NAMES
 46580643be3c   centos:httpd1   "/bin/bash"   35 seconds ago   Up 34 seconds   0.0.0.0:32768->80/tcp, :::32768->80/tcp   c0
 # 浏览器访问宿主机的32768端口

 [root@docker ~]# docker run -it --name c1 -p80 centos:httpd1 /bin/bash
 [root@fe69a949d832 /]# httpd -k start
 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.3. Set the 'ServerName' directive globally to suppress this message
 [root@fe69a949d832 /]# [root@docker ~]# 
 [root@docker ~]# docker ps
 CONTAINER ID   IMAGE           COMMAND       CREATED          STATUS          PORTS                                     NAMES
 fe69a949d832   centos:httpd1   "/bin/bash"   20 seconds ago   Up 19 seconds   0.0.0.0:32769->80/tcp, :::32769->80/tcp   c1
 46580643be3c   centos:httpd1   "/bin/bash"   4 minutes ago    Up 4 minutes    0.0.0.0:32768->80/tcp, :::32768->80/tcp   c0

11、通过宿主机中其他的ip地址的端口映射容器的端口

 # 添加一块虚拟网卡
 [root@docker ~]# ifconfig ens33:0 10.0.0.101 broadcast 10.0.0.101 netmask 255.255.255.255 up
 # 强制删除正在运行中的容器
 [root@docker ~]# docker rm -f c0 c1
 c0
 c1
 # 创建一个容器将容器的80端口映射到宿主机的10.0.0.101地址下的随机端口上
 [root@docker ~]# docker run -it --name c0 -p10.0.0.101::80 centos:httpd1 /bin/bash
 [root@c9ea4034d9e2 /]# httpd -k start
 AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
 [root@c9ea4034d9e2 /]# curl localhost  
 hh
 [root@c9ea4034d9e2 /]# [root@docker ~]# 
 [root@docker ~]# docker ps
 CONTAINER ID   IMAGE           COMMAND       CREATED          STATUS          PORTS                      NAMES
 c9ea4034d9e2   centos:httpd1   "/bin/bash"   43 seconds ago   Up 43 seconds   10.0.0.101:32768->80/tcp   c0
 # 浏览器访问宿主机10.0.0.101的32768端口

12、容器数据持久化保存(卷映射)

因为dockers容器只是一个工具,不需要保存数据,不需要在持久化,如果要做持久化,那么就需要保存到宿主机上,需要宿主机和容器之间有一个共享卷。

 [root@docker ~]# docker ps
 CONTAINER ID   IMAGE           COMMAND       CREATED          STATUS          PORTS                      NAMES
 c9ea4034d9e2   centos:httpd1   "/bin/bash"   23 minutes ago   Up 23 minutes   10.0.0.101:32768->80/tcp   c0
 # 强制删除正在运行中的容器
 [root@docker ~]# docker rm -f c0
 c0
 # 创建映射目录
 [root@docker ~]# mkdir /source
 # 创建一个容器并将容器的/data目录映射到宿主机的/source目录上
 [root@docker ~]# docker run -it --name c0 -v /source:/data centos:httpd1 /bin/bash
 [root@13f4660eef3e /]# ls
 bin   dev  home  lib64       media  opt   root  sbin  sys  usr
 data  etc  lib   lost+found  mnt    proc  run   srv   tmp  var
 [root@13f4660eef3e /]# [root@docker ~]# 
 [root@docker ~]# touch /source/hh.txt
 [root@docker ~]# docker exec c0 ls /data
 hh.txt
 [root@docker ~]# docker exec c0 touch /data/hehe.txt
 [root@docker ~]# ls /source/
 hehe.txt  hh.txt

13、总结:

(1)镜像的迁移

1)打包
 docker save -o centos.tar centos:lstest
2)加载
 docker load -i centos.tar 
 docker images
 # 停用关闭容器
 docker rm c0
 # 删除镜像
 docker rmi centos:latest

(2)创建镜像

1)创建镜像
 docker run -it --name c0 centos:latest /bin/bash
 # 下载阿里云仓库
 # clean,,makecache
 ctrl p q
2)容器打包
 docker export -o centos_yum.tar c0
3)引入镜像
 docker import -m "updata yum repo" centos_yum.tar centos:yum
 ​
 docker images

(3)ip网络

1)交互式
 docker start c0
 docker attach c0
 yum -y install iproute
 ip a
2)inspect
 docker inspect c0
3)exec
 docker exec c0 yum -y install net-tools
 docker exec c0 ifconfig

(4)端口

1)指定端口映射
 docker run -it --name c0 -p70:80 centos:httpd /bin/bash
2)随机端口映射
 docker run -it --name c0 -p80 centos:httpd /bin/bash
3)指定其他ip的端口映射
 ifconfig ens33:0 10.0.0.101 broadcast 10.0.0.101 netmask 255.255.255.255 up
 docker run -it --name c0 -p10.0.0.101::80 centos:httpd /bin/bash

(5)持久化

1)挂载
 mkdir /source
 docker run -it --name c0 -v /source:/data sentos:httpd /bin/bash

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2067386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeRTOS 快速入门(六)之互斥量

目录 一、互斥量1、基本概念2、运作机制3、死锁现象4、递归互斥量 二、优先级反转和优先级继承问题1、优先级反转问题2、优先级继承问题 三、互斥量函数1、互斥量1、创建 2、获取互斥量3、释放互斥量4、删除互斥量 一、互斥量 1、基本概念 互斥量又称互斥信号量(本…

Vue.js学习笔记(七)使用sortablejs或el-table-draggable拖拽ElementUI的el-table表格组件

文章目录 前言一、el-table-draggable是什么?二、使用步骤1.安装使用2.sortablejs 总结 前言 记录 el-table-draggable 插件使用方法。 一、el-table-draggable是什么? el-table-draggable的存在就是为了让vue-draggable支持element-ui中的el-table组件…

Lesson 81+82 Roast beef and potatoes

Lesson 8182 Roast beef and potatoes 词汇 bath n. 洗澡,浴缸 搭配:have a bath 泡澡 相关:take a shower 淋浴,冲个澡    shower:花洒,喷头 例句:Bobby总是在傍晚洗澡。    Bobby alw…

基于预训练模型,进行氨基酸序列编码,用于深度学习模型构建

本团队提供生物医学领域专业的AI(机器学习、深度学习)技术支持服务。如果您有需求,请扫描文末二维码关注我们。 在对氨基酸序列数据进行深度学习模型构建时,首先需要将字符形式的序列数据进行编码操作。最简单的当然是One-hot编码…

【Java】/* 双向链式队列 和 循环队列 - 底层实现 */

一、链式队列 1. 使用双向链表实现队列,可以采用尾入,头出 也可以采用 头入、尾出 (LinkedList采用尾入、头出) 2. 下面代码实现的是尾入、头出: package bageight;/*** Created with IntelliJ IDEA.* Description:* User: tangyuxiu* Date: …

[kaggle竞赛] 毒蘑菇的二元预测

毒蘑菇的二元预测 您提供了很多关于不同二元分类任务的资源和链接,看起来这些都是Kaggle竞赛中的参考资料和高分解决方案。为了帮助您更好地利用这些资源,这里是一些关键点的总结: Playground Season 4 Episode 8 主要关注的竞赛: 使用银行…

2024/8/22 英语每日一段

Belgian triathlete Claire Michel ultimately said it was a virus and not bacteria from the water that made her sick after a swim. But Belgium’s Olympic committee said in a statement that it hoped “lessons will be learned” for future Olympics. “We are th…

鸿蒙(API 12 Beta3版)【使用ImageEffect编辑图片】图片开发指导

场景介绍 ImageEffect提供了一系列接口用于图像的编辑。开发者可以通过ImageEffect接口处理不同图像输入类型Pixelmap、NativeWindow、NativeBuffer或Uri,获得滤镜处理效果。 针对ImageEffect,常见的开发场景如下: 通过ImageEffect提供的N…

iOS 18 Beta 7测试版本体验,无新功能,修复已知bug

近日苹果公司发布了iOS 18 beta7版本,版本号22A5346a。那iOS 18beta7版本是否比其他的测试版要更好用呢?以下测试结果仅供果粉参考,一机一况,以个人实际体验为准。 一、日常使用体验 1、App响应非常快,动画过渡时间稍…

【高等代数笔记】线性方程组的解法(三、四、五)

1. 线性方程组的解法 由于这个视频课的分p十分抽象,我还是把一节完整的课学完再发表笔记吧,要不然太零碎了。 接上一篇文章 阶梯形方程组为 { x 1 − x 2 2 x 3 − 1 0 0 \left\{\begin{array}{l} x_{1}-x_{2}2 \\ x_{3}-1 \\ 00 \end{array}\righ…

dll错误修复工具:一键解决系统DLL错误产生的程序问题(新手入门)

dll错误修复工具,主要解决导致Windows系统上程序出错的各种dll相关问题。金舟DirectXDLL一键修复提供了全面的且快速的扫描功能,能够检测出导致程序故障的任何dll错误,并且一键进行修复。 一、什么是dll文件 dll是系统的动态链接库文件&…

6年赚了300亿孙悟空才是真财神!带火文旅、引发装机热潮、搅动A股....这波热度你蹭到了吗?

《黑神话:悟空》上线后一博主连续32小时直播,观看人数超3000万,涨粉近46万!该主播个人收益或高达85万元!游戏里的36个取景地中,山西独占27个。8月20日,小西天景区出售门票比去年同期增长300%。 …

前端面试题-vue框架

1. 聊聊为什么会出现 React、vue 这样的框架,他们的出现解决了什么问题 用户界面越来越复杂,框架采用声明式的写法,将界面的构建和数据的管理分离出来,大大提升开发效率和维护效率。 (1)原生JS实现不太方…

如何在Visio中画精准的圆弧,角度标记,弧度标记(已解决)

1、导入 “绘图工具形状” 打开 Visio--》 然后: 点击 绘制工具形状 之后, 在界面会出现 绘制工具形状的选项 如下 本人 使用圆弧 ,弧线功能,然后两头增加箭头,实现角度标注,如下

【Qt开发】建立自己的Qt基本类、函数库封装 包括图表、多线程、串口等

【Qt开发】建立自己的Qt基本类、函数库 包括图表、多线程、串口等 文章目录 前言QtCharts绘图继承QObject的QThread多线程QSerialPort串口配置、发送、接收回调函数附录:C语言到C的入门知识点(主要适用于C语言精通到Qt的C开发入门)C语言与C的…

2024年企业记账最主流的8大财务软件大对比

企业记账的8大主流财务软件:1.合思;2.用友好会计财务软件;3.浪潮云会计;4.金蝶精斗云财务软件;5.Zoho Books;6.管家婆;7.QuickBooks;8.云账房。 对小企业主来说,采用高效…

Linux | 探究C语言文件接口与Linux系统文件接口的区别与联系 | fopen和open的区别与联系

什么是尘土?从大地之肺发出的一声叹息。 - 《阿多尼斯诗集》(阿多尼斯) 2024.8.23 目录 1、C语言IO接口 示例代码:使用 fopen 和 fclose 读写文件 示例1:通过write写文件 示例2:通过read写文件 C语言的标准流:std…

集合及数据结构第十节(上)————优先级队列,堆的创建、插入、删除与用堆模拟实现优先级队列

系列文章目录 集合及数据结构第十节(上)————优先级队列,堆的创建、插入、删除与用堆模拟实现优先级队列 优先级队列,堆的创建、插入、删除与用堆模拟实现优先级队列 优先级队列的概念堆的概念堆的存储方式堆的创建变量的作…

谷粒商城实战笔记-250-商城业务-消息队列-RabbitMQ安装-Docker

一,docker安装RabbitMq RabbitMQ 是一个开源的消息代理软件,广泛用于实现异步通信和应用程序解耦。 使用 Docker 容器化技术可以简化 RabbitMQ 的安装和部署过程。 以下是使用 Docker 安装 RabbitMQ 的详细步骤。 步骤 1: 安装 Docker 如果您的系统…

Linux 软件编程 网络 tcp

1.TCP粘包问题: TCP发送数据是连续的,两次发送的数据可能粘连成一包被接收到 1.解决粘包问题方法: 1.接收指定长度:(不稳定) 发送5个字节 接收5个字节 2.睡眠&#x…