Docker——容器生命周期管理(下篇)

Docker

  • 一、run
    • 1、options说明
    • 2、-p的三种写法
    • 3、实例1
    • 4、实例2
    • 5、实例3
    • 6、实例4
    • 7、实例5
    • 8、实例6
    • 9、实例7
    • 8、实例8
    • 9、退出容器
  • 二、start/stop/restart
    • 1、语法格式
    • 2、stop/restart 命令的 options
  • 三、kill
    • 1、重点
    • 2、说明
    • 3、实例
  • 四、rm
    • 1、说明
    • 2、实例
  • 五、create
    • 实例
  • 六、exec
    • 实例
  • 七、pause/unpause
    • 实例

一、run

​创建一个新的容器并运行一个命令

语法格式docker run [OPTIONS] IMAGE [COMMAND][ARG...]
备注:其实跟docker create一样的语法格式,只不过可以运行容器甚至进入容器内部COMMAND: 需要在容器内执行的命令
docker run执行流程首先在指定镜像上创建一个可写的容器层然后使用指定的命令(command)启动它docker run 相当于执行力两个API /containers/create 、 ../start

1、options说明

OPtion作用
-i以交互模式运行,通常与-t同时使用
-t启动容器后,为容器分配一个命令行,通常与-i同时使用
-v目录映射,容器目录挂载到宿主机目录,格式<host目录><容器目录>
-d守护进程,后台运行该容器
-p指定端口映射,格式: 主机(宿主)端口:容器端口
-P随机端口映射,容器内部端口随机映射到主机的端口
-u以什么用户身份创建容器
–name “nginx-lb”容器名字
-m, --memory bytes设置容器使用内存最大值
-h, --hostname string指定容器的host name
–dns 8.8.8.8指定容器 dns 服务器
-e username=“ritchie”设置环境变量
–restartDocker 重启后,容器是否自动重启
–privileged容器内是否使用真正的 root 权限

2、-p的三种写法

docker run -p ip:主机端口:容器端口
docker run -p 主机端口:容器端口(常用)
docker run -p 容器端口

3、实例1

使用镜像 tomcat:7 容器命名为tomcat7

[root@localhost Fancy_Illusion]# docker run --name tomcat7 tomcat:7
Unable to find image 'tomcat:7' locally
7: Pulling from library/tomcat
0bc3020d05f1: Pull complete 
a110e5871660: Pull complete 
83d3c0fa203a: Pull complete 
a8fd09c11b02: Pull complete 
96ebf1506065: Pull complete 
26b72ffca293: Pull complete 
0bffa2ea17aa: Pull complete 
d880cebcc7a6: Pull complete 
d19ab8039b36: Pull complete 
5057492dc495: Pull complete 
Digest: sha256:f7d37d248d0eacec1e5995736234c9c22155626fcb27ea3ead13b9db24e698f7
Status: Downloaded newer image for tomcat:7
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version name:   Apache Tomcat/7.0.109
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Apr 22 2021 18:43:38 UTC
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version number: 7.0.109.0
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Linux
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            3.10.0-1160.el7.x86_64
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             /usr/local/openjdk-8/jre
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_292-b10
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         /usr/local/tomcat
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         /usr/local/tomcat
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dignore.endorsed.dirs=
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=/usr/local/tomcat
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=/usr/local/tomcat
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
Sep 13, 2022 6:58:49 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: Loaded Apache Tomcat Native library [1.2.28] using APR version [1.6.5].
Sep 13, 2022 6:58:49 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Sep 13, 2022 6:58:49 AM org.apache.catalina.core.AprLifecycleListener initializeSSL
INFO: OpenSSL successfully initialized [OpenSSL 1.1.1d  10 Sep 2019]
Sep 13, 2022 6:58:49 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-apr-8080"]
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 667 ms
Sep 13, 2022 6:58:49 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
Sep 13, 2022 6:58:49 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.109
Sep 13, 2022 6:58:49 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-apr-8080"]
Sep 13, 2022 6:58:49 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 65 ms

在这里插入图片描述
在这里插入图片描述

这样运行,会直接将容器运行日志打印出来,所以一般都需要加 -d,否则无法继续敲其他命令

[root@localhost Fancy_Illusion]# docker run -d  --name tomcat8 tomcat:8
Unable to find image 'tomcat:8' locally
8: Pulling from library/tomcat
0e29546d541c: Pull complete 
9b829c73b52b: Pull complete 
cb5b7ae36172: Pull complete 
6494e4811622: Pull complete 
668f6fcc5fa5: Pull complete 
dc120c3e0290: Pull complete 
8f7c0eebb7b1: Pull complete 
77b694f83996: Pull complete 
b7c26350ecc2: Pull complete 
7365b3b02e1b: Pull complete 
Digest: sha256:421c2a2c73f3e339c787beaacde0f7bbc30bba957ec653d41a77d08144c6a028
Status: Downloaded newer image for tomcat:8
dadbab601c2d02a6cd04abf186675ff9c85fc3f8b0989b0391dbd2786dfb367e
[root@localhost Fancy_Illusion]# docker ps
CONTAINER ID   IMAGE      COMMAND             CREATED              STATUS              PORTS      NAMES
dadbab601c2d   tomcat:8   "catalina.sh run"   About a minute ago   Up About a minute   8080/tcp   tomcat8

在这里插入图片描述
其实打印的在日志就是 catalina.sh run 命令之后的日志

4、实例2

使用镜像tomcat:8,以后台模式启动一个容器,容器名字定义为tomcat8

[root@localhost Fancy_Illusion]# docker run -d  --name tomcat8 tomcat:8
[root@localhost Fancy_Illusion]# docker ps
CONTAINER ID   IMAGE      COMMAND             CREATED              STATUS              PORTS      NAMES
dadbab601c2d   tomcat:8   "catalina.sh run"   About a minute ago   Up About a minute   8080/tcp   tomcat8

在这里插入图片描述
创建容器之后还能执行其他命令,这样方便很多

5、实例3

使用镜像tomcat:9,以后台模式启动一个容器,将容器的8080端口映射到主机的随机端口,容器名字定义为tomcat9999

[root@localhost Fancy_Illusion]# docker run -d -P --name tomcat9999 tomcat:9
[root@localhost Fancy_Illusion]# docker ps
CONTAINER ID   IMAGE      COMMAND             CREATED          STATUS          PORTS                                         NAMES
685cb359e8f5   tomcat:9   "catalina.sh run"   34 seconds ago   Up 33 seconds   0.0.0.0:49153->8080/tcp, :::49153->8080/tcp   tomcat9999

在这里插入图片描述

6、实例4

使用镜像 tomcat:10 ,以后台模式启动一个容器,将容器的 8080 端口映射到主机的 9999 端口,容器名字自定义为 tomcat10

[root@localhost Fancy_Illusion]# docker run -d -p 9999:8080 --name tomcat10 tomcat:10
[root@localhost Fancy_Illusion]# docker ps
21ba2a865991   tomcat:10   "catalina.sh run"   47 seconds ago   Up 45 seconds   0.0.0.0:9999->8080/tcp, :::9999->8080/tcp     tomcat10

在这里插入图片描述
可以看到 PORTS 一列,主机的 9999 端口指向了容器的 8888 端口

7、实例5

使用镜像 tomcat:7,以后台模式启动一个容器,将容器的 8080 端口映射到主机的 9999 端口,容器名字自定义为 tomcat7,主机的目录 /usr/local/tomcat/webapps 映射到容器的 /usr/local/tomcat/webapps,以后直接在主机的 webapps 目录上传 war 包,就能在浏览器访问对应的项目。

[root@localhost Fancy_Illusion]# docker run -d -p 9999:8080 -i --name tomcat7 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat:7
a603e1e6d14d   tomcat:7   "catalina.sh run"   38 seconds ago   Up 37 seconds   0.0.0.0:9999->8080/tcp, :::9999->8080/tcp   tomcat7

8、实例6

使用镜像 tomcat:7,以后台模式启动一个容器,将容器的 8080 端口映射到主机的 111.20.72.43:8888 端口,容器名字自定义为 tomcat77,主机的目录 /usr/local/tomcat/webapp 映射到容器 /usr/local/tomcat/webapps ,启动容器后,在容器内执行 bash 命令

注意: 这里不加 -it 的话,容器是无法再启动的,加上才能启动容器并执行 bash 命令

docker run -d -p 111.20.72.43:8888:8080 -v /usr/local/webapps:/usr/local/webapps -it --name tomcat77 tomcat:7 bash

9、实例7

[root@localhost Fancy_Illusion]# docker run -d --name jenkin2 --privileged=true jenkins/jenkins
[root@localhost Fancy_Illusion]# docker exec -it jenkin2 bash
jenkins@49ea055c07c1:/$ 

在这里插入图片描述
虽然是拥有了 root 权限,但并不一定是 root 用户身份,所以最好加 -uroot 指定 root 用户身份

  • -uroot:是给了 root 用户身份,但并没有真正的 root 权限
  • –privileged:真正让当前用户有了 root 权限

若想要最高的权限,两者可以结合使用

8、实例8

该容器在 Docker 重启后会自动启动无需手动启动

[root@localhost Fancy_Illusion]# docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS                 NAMES
afb882148e5e   jenkins/jenkins   "/sbin/tini -- /usr/…"   16 seconds ago   Up 15 seconds   8080/tcp, 50000/tcp   jenkins
[root@localhost Fancy_Illusion]# systemctl restart docker
[root@localhost Fancy_Illusion]# docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED              STATUS         PORTS                 NAMES
afb882148e5e   jenkins/jenkins   "/sbin/tini -- /usr/…"   About a minute ago   Up 4 seconds   8080/tcp, 50000/tcp   jenkins

9、退出容器

exit	容器直接退出
ctrl +P +Q 容器不停止退出	

二、start/stop/restart

docker start:启动一个或多个已经被停止的容器
docker stop:停止一个或多个运行中的容器
docker restart:重启一个或多个容器

1、语法格式

docker start [OPTIONS] CONTAINER [CONTAINER...]
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker restart [OPTIONS] CONTAINER [CONTAINER...]

2、stop/restart 命令的 options

option作用
-t,–time杀死容器之前等待停止的秒数(默认为10)

根据容器 ID 启动、关闭、重启

[root@localhost Fancy_Illusion]# docker start afb882148e5e
afb882148e5e
[root@localhost Fancy_Illusion]# docker stop afb882148e5e
afb882148e5e
[root@localhost Fancy_Illusion]# docker restart afb882148e5e
afb882148e5e

根据容器名字启动、关闭、重启

[root@localhost Fancy_Illusion]# docker start jenkins
jenkins
[root@localhost Fancy_Illusion]# docker stop jenkins
jenkins
[root@localhost Fancy_Illusion]# docker restart jenkins
jenkins

启动所有容器

[root@localhost Fancy_Illusion]# docker start $(docker ps -a -q)

关闭所有容器

[root@localhost Fancy_Illusion]# docker stop $(docker ps -a -q)

三、kill

杀死一个或多个正在运行的容器

语法格式
docker kill [OPTIONS] CONTAINER [CONTAINER...]

1、重点

	docker kill子命令可杀死一个或多个容器向容器内部的主进程发送SIGKILL 信号(默认),或使用 --signal选项指定的信号

2、说明

options作用
-s发送到什么信号到容器,默认KILL

3、实例

根据容器名字杀掉容器

[root@localhost Fancy_Illusion]# docker kill jenkins

根据容器ID杀掉容器

[root@localhost Fancy_Illusion]# docker kill afb882148e5e

四、rm

删除一个或多个容器

语法格式
docker rm [OPTIONS] CONTAINER [CONTAINER...]

1、说明

options作用
-f通过SIGKILL信号删除一个正在运行的容器
-l移除容器间的网络,而非容器本身
-v删除与容器映射的目录

2、实例

强制删除容器

docker rm -f name

删除所有已停止的容器

docker rm$(docker ps -a -q)

删除所有容器

docker rm -f $(docker ps -aq)
docker ps -a -q | xargs docker rm

删除tomcat

五、create

创建一个新的容器但不启动它

语法格式
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
option作用
–name指定容器的名字

实例

根据 tomcat 镜像,创建一个 myTomcat 容器
docker create --name=myTomcat tomcat
[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker create --name tomcat8 tomcat:8
[root@localhost ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
tomcat        8         2d2bccf89f53   8 months ago    678MB
[root@localhost ~]# docker ps -a
CONTAINER ID  IMAGE COMMAND CREATED STATUS PORTS NAMES
5b011e57c4d7   tomcat:8   "catalina.sh run" About a minute ago   Created   tomcat8

六、exec

在正在运行的容器中运行命令

语法格式
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
options作用
-d在后台运行命令
-i即使没有附加也保持STDIN打开,和-t配合
-t进入容器的CLI模式
-e设置环境变量
–env-file读入环境变量文件
-w需要执行命令的目录
-u指定访问容器的用户名

实例

执行 tomcat 容器的 startup.sh 脚本

[root@localhost ~]# docker exec -it tomcat8 startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/openjdk-11
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

进入容器的 CLI 模式(最常用)

[root@localhost ~]# docker exec -it tomcat8 bash
[root@localhost ~]# docker exec -it tomcat8 bash
root@5b011e57c4d7:/usr/local/tomcat# 
root@5b011e57c4d7:/usr/local/tomcat# exit
exit

执行普通命令

[root@localhost ~]# docker exec -it tomcat8 pwd
[root@localhost ~]# docker exec -it tomcat8 pwd
/usr/local/tomcat

以 root 用户身份进入容器(重点)

[root@localhost ~]# docker exec -it -uroot jenkins bash
root@afb882148e5e:/# 

好处就是,你在容器里敲命令就是 root 用户,畅通无阻,不存在权限不足的问题

七、pause/unpause

docker pause:	暂停一个或多个容器中的所有进程
docker unpause:	恢复一个或多个容器中的所有进程
语法格式
docker pause CONTAINER [CONTAINER...]
docker unpause CONTAINER [CONTAINER...]

实例

暂停tomcat容器的服务

[root@localhost ~]# docker pause tomcat8 

恢复tomcat容器的服务

[root@localhost ~]# docker unpause tomcat8 

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

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

相关文章

天眼查询企业信息API接口

"天眼"一般是指"天眼查"&#xff0c;这是一个提供全国企业信息查询的API接口。天眼查以"天眼"作为用户logo&#xff0c;基于人工智能算法的数据采集和分析技术&#xff0c;为企业和个人提供全量、精准、实时、权威的企业信息查询服务。 天眼查A…

美容店预约小程序搭建流程

随着科技的不断发展&#xff0c;小程序已经成为了人们生活中不可或缺的一部分。对于美容店来说&#xff0c;搭建一个预约小程序不仅可以提高工作效率&#xff0c;还可以增加客户数量、提高服务质量。那么&#xff0c;如何搭建一个美容店预约小程序呢&#xff1f;本文将为你详细…

Dockerfile 语法详解:构建定制化容器镜像的基石

Docker 已经成为现代应用程序开发和部署的关键工具之一。在 Docker 的世界中&#xff0c;Dockerfile 是一个至关重要的文件&#xff0c;它定义了如何构建容器镜像的步骤和配置。本文将深入探讨 Dockerfile 的语法&#xff0c;为您提供构建定制化容器镜像的基础知识。 Dockerfil…

React 全栈体系(十六)

第八章 React 扩展 五、Context 1. 代码 /* index.jsx */ import React, { Component } from react import ./index.css//创建Context对象 const MyContext React.createContext() const {Provider,Consumer} MyContext export default class A extends Component {state …

MySQL基础-多表查询

目录 简单概述 1.多表之间的关系 1.1 一对多/多对一 1.2 多对多 1.3 一对一 2. 多表查询-内连接 2.1 隐式内连接 2.2 显式内连接 2.3 内连接小结 3.多表查询-外连接 3.1 左外连接 3.2 右外连接 4.多表查询-自连接 4.1 应用 5.多表查询-联合查询 6.子查询 6.1 标量子…

黑马JVM总结(二十五)

&#xff08;1&#xff09;字节码指令-cinit 构造方法可以分为两类&#xff0c;一类是cinit 一类init cinit是整个类的构造方法 putstatic&#xff1a;进行static变量的赋值&#xff0c;是到常量池里找到名字一个叫做i的变量 &#xff08;2&#xff09;字节码指令-init in…

漫谈:C语言 C++ 左值、右值、类型转换

编程不是自然语言&#xff0c;编程自有其内在逻辑。 左值引起的BUG 编译器经常给出类似这样的BUG提示&#xff1a; “表达式必须是可修改的左值” “非常量引用的初始值必须是左值” 看一下示例&#xff1a; #include <iostream>void f(int& x) {} int main() {sho…

C#中实现单元测试的示例流程_MSTest测试项目

一、单元测试简介 1.1、单元测试简介 在《单元测试艺术》一书中对于单元测试的定义是&#xff1a;【一个单元测试是一段代码&#xff0c;这段代码调用一个工作单元&#xff08;指&#xff1a;调用软件中的一个方法&#xff0c;这个方法执行过程中所发生的所有行为以及最后产生…

Inno Setup安装中文语言

以版本6.2.2为例&#xff1a; 默认安装的Inno Setup是不支持中文语言的&#xff0c;需要我们自行下载安装。 一、打开官网Inno Setup Translations (jrsoftware.org) 下载的文件如下 二、然后重命名放到Inno Setup的如下安装目录中 三、然后重启Inno Setup即可。 打包后的…

家电行业 EDI:Miele EDI 需求分析

Miele是一家创立于1899年的德国公司&#xff0c;以其卓越的工程技术和不懈的创新精神而闻名于世。作为全球领先的家电制造商&#xff0c;Miele的经营范围覆盖了厨房、洗衣和清洁领域&#xff0c;致力于提供高品质、可持续和智能化的家电产品。公司的使命是为全球消费者创造更美…

SpringMVC 学习(二)Hello SpringMVC

3. Hello SpringMVC (1) 新建 maven 模块 springmvc-02-hellomvc (2) 确认依赖的导入 (3) 配置 web.xml <!--web/WEB-INF/web.xml--> <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee…

maven清理本地仓库。删除_remote.repositories文件和删除失败的jar包

1.图预览 .bat文件要和仓库在同一平级目录 REPOSITORY_PATH要改成你自己仓库的地址 2、删除.lastUpdated文件(失败的jar包) 使用.bat文件 注明&#xff1a;REPOSITORY_PATHD:\software\Java\maven\repository 改成你仓库的地址 set REPOSITORY_PATHD:\software\Java\maven\rep…

河北吉力宝以步力宝健康鞋引发的全新生活生态商

在当今瞬息万变的商业世界中&#xff0c;成功企业通常都是那些不拘泥于传统、勇于创新的先锋之选。河北吉力宝正是这样一家企业&#xff0c;通过打造一双步力宝健康鞋&#xff0c;他们以功能性智能科技穿戴品为核心&#xff0c;成功创造了一种结合智能康养与时尚潮流的独特产品…

Zotero同步论文、笔记

之前用 Mendeley[1]看论文&#xff0c;看中几个功能&#xff1a; tags&#xff0c;多标签分类&#xff0c;类似微信分组&#xff0c;用来快速筛&#xff08;已添加的&#xff09;某一类文献&#xff1b;同步&#xff0c;包括 pdf 和笔记&#xff08;高亮、便签、tags&#xff…

数链科技基于PP-ChatOCR实现合同信息抽取,准确率达98%

传统大宗商品供应链领域数字化程度低&#xff0c;存在交易环节不透明、业务流程不标准、依赖主体信用评价等问题&#xff0c;业务中存在大量营业执照、身份证、终端合同等线下单据&#xff0c;严重依赖人工线下审核&#xff0c;且数字化难度大。 不同终端、机构、仓库的单据格式…

python使用websocket实现多端数据同步,多个websocket同步消息,断开链接自动清理

我使用的是flask_sock这个模块&#xff0c;我的使用场景是&#xff1a;可以让数据多端实时同步。在游戏控制后台和游戏选手的ipad上都可以实时调整角色的技能和点数什么的&#xff0c;所以需要这样的一个功能来实现数据实时同步。 下面是最小的demo案例&#xff1a; from fla…

LoadLibraryEx调用dll时有未经处理的异常,发生访问冲突

0x000000000006A220 处的第一机会异常(在 testHFHZDll.exe 中): 0xC0000005: 执行位置 0x000000000006A220 时发生访问冲突。 0x000000000006A220 处有未经处理的异常(在 testHFHZDll.exe 中): 0xC0000005: 执行位置 0x000000000006A220 时发生访问冲突。 最近做一个测试&#…

[C++随笔录] stack queue使用

stack && queue使用 stackqueue题目训练 stack 栈的特点是 先进后出(first in last out) 我们可以看出, stack的接口相比 vector/string/list 的接口少的太多了 构造函数 && 容器适配器 容器适配器的含义: 首先, 适配器 — — 用户传数据进来, 我们用合适的…

mac安装python2

Python 2 于 2020 年 1 月 1 日宣布结束支持&#xff0c;包括 Homebrew 在内的许多项目和包管理器已经停止支持 Python 2。 如果现在你还要安装 Python 2&#xff0c;需要从 Python 官网下载安装包&#xff1a; 访问 Python 的发布页面。从页面底部找到 Python 2 的最后一个版…

DeepSpeed简单教程

DeepSpeed github地址、DeepSpeed 官网 、DeepSpeed API文档、huggingface DeepSpeed文档、知乎deepspeed入门教程、微软deepspeed博客示例代码&#xff1a;《Using DeepSpeed with HF&#x1f917; Trainer》、 BLOOM_LORA&#xff08;运行示例见《Running_Deepspeed》&#x…