第三节 docker基础之---Commit+Dockerfile制作

docker目前镜像的制作两种方法:

1,基于docker Commit制作镜像

2,基于dockerfile制作镜像,Dockerfile 为主流的制作方式

如果不制作镜像删除容器之后则里面配置的文件也随之删除:


[root@docker ~]# docker images  查看本地
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       7         eeb6ee3f44bd   16 months ago   204MB[root@docker ~]# docker run -it centos:7 /bin/bash  进入容器[root@ab18198ba0a3 /]# cd /home/[root@ab18198ba0a3 home]# mkdir xdclass  创建一个目录[root@ab18198ba0a3 home]# yum install net-tools -y  安装执行ifconfig查看ip[root@2b86fd5ea318 home]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)RX packets 3835  bytes 27628549 (26.3 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 3315  bytes 182288 (178.0 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@2b86fd5ea318 home]#
[root@docker ~]# docker ps  查看运行
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
7d4c97ddb0ba   centos:7   "/bin/bash"   3 minutes ago   Up 2 minutes             busy_banzai[root@docker ~]# docker restart 7d4c97ddb0ba  进行重启
7d4c97ddb0ba
[root@docker ~]#[root@docker ~]# docker ps
CONTAINER ID   IMAGE      COMMAND       CREATED         STATUS         PORTS     NAMES
7d4c97ddb0ba   centos:7   "/bin/bash"   6 minutes ago   Up 3 minutes             busy_banzai
[root@docker ~]#
[root@docker ~]#[root@docker ~]# docker rm -f 7d4c97ddb0ba   删除docker
7d4c97ddb0ba[root@docker ~]# docker ps  查看
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES#删除之后重新拉取一个新的则无

1,dockerCommit制作镜像

开启容器创建文档安装net-tools:


[root@docker ~]# docker run -itd centos:7[root@docker ~]# docker ps
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
cc5a01178967   centos:7   "/bin/bash"   33 seconds ago   Up 32 seconds             vigorous_pike[root@docker ~]# docker exec -it cc5a01178967 /bin/bash
[root@cc5a01178967 /]#
[root@cc5a01178967 /]#
[root@cc5a01178967 /]# cd /home/
[root@cc5a01178967 home]# mkdir xdclass
[root@cc5a01178967 home]# yum install net-tools -y
[root@cc5a01178967 home]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)RX packets 2210  bytes 27541329 (26.2 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 2024  bytes 112678 (110.0 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

进行构建Commint:


[root@docker ~]# docker commit -a 'lyx' -m 'mkdir /home/xdclass net-tools' cc5a01178967 mycentos:v1 sha256:64e6184ab6d4aeeb3c1c1ade6892cfdad76c630efbaec28d2ea800ad9788abfe
commit代表制作成镜像
-a属性表示制作人我写的lyx
-m属性表示这个文件大致内容我则用来保存的是安装net-tools
输入ID
mycentos命名和v1版本[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
mycentos     v1        64e6184ab6d4   3 minutes ago   403MB  #这个则是咱们制作成功的
centos       7         eeb6ee3f44bd   16 months ago   204MB
[root@docker ~]#[root@docker ~]# docker ps  查看运行
CONTAINER ID   IMAGE      COMMAND       CREATED          STATUS          PORTS     NAMES
cc5a01178967   centos:7   "/bin/bash"   11 minutes ago   Up 11 minutes             vigorous_pike[root@docker ~]# docker rm -f cc5a01178967  进行删除
cc5a01178967[root@docker ~]# docker ps  查看运行无
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES[root@docker ~]# docker images  查看制作成功的mycentos
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
mycentos     v1        64e6184ab6d4   5 minutes ago   403MB
centos       7         eeb6ee3f44bd   16 months ago   204MB[root@docker ~]# docker run -itd mycentos:v1 /bin/bash  进行启动容器
a893d4021f98b4c2294d313b5d5285ad109de173295f6106d5db0de624626f63[root@docker ~]# docker ps  查看运行
CONTAINER ID   IMAGE         COMMAND       CREATED         STATUS         PORTS     NAMES
a893d4021f98   mycentos:v1   "/bin/bash"   6 seconds ago   Up 6 seconds             magical_gould
[root@docker ~]# docker exec -it a893d4021f98 /bin/bash  进入容器[root@a893d4021f98 /]# cd /home/  进入home目录[root@a893d4021f98 home]# ls  查看之前创建的xdclass
xdclass
[root@a893d4021f98 home]# ifconfig 查看网卡是否运行成功
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)RX packets 8  bytes 656 (656.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@a893d4021f98 home]#

实验:Docker commit构建带sshd服务自定义镜像

查看本地镜像:


[root@docker ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       7         eeb6ee3f44bd   17 months ago   204MB
[root@docker ~]#

利用centos镜像建立容器,并进入该容器:


[root@docker ~]# docker run -dit --name my-centos1 centos:7
b2cb61f3b58d74c36d753aa907c4e6a1569edd1ade3944ba10b9e9761b8a9556
[root@docker ~]#
[root@docker ~]# docker exec -it my-centos1 /bin/bash
[root@b2cb61f3b58d /]#

net-tools,openssh-server:


[root@b2cb61f3b58d /]# yum -y install openssh-server net-tools

创建ssh所需的目录,并在根目录下创建sshd启动脚本:


[root@b2cb61f3b58d /]# mkdir -pv /var/run/sshd
mkdir: created directory '/var/run/sshd'
[root@b2cb61f3b58d /]#
[root@b2cb61f3b58d /]#
[root@b2cb61f3b58d /]# echo "/usr/sbin/sshd -D" > /auto_sshd.sh
[root@b2cb61f3b58d /]# cat /auto_sshd.sh
/usr/sbin/sshd -D
[root@b2cb61f3b58d /]# chmod +x /auto_sshd.sh
[root@b2cb61f3b58d /]#

修改容器内root的账户密码:


[root@b2cb61f3b58d /]# echo "root:lyx" | chpasswd
[root@b2cb61f3b58d /]# 设置密码为lyx

生成ssh主机密钥文件:

1,生成rsa_key


[root@b2cb61f3b58d /]# ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
The key fingerprint is:
SHA256:Hsivc33BCDDF64qWk7K87gWe+BrBUOD75Dlb+WLPeTY root@b2cb61f3b58d
The key's randomart image is:
+---[RSA 2048]----+
|...    o.        |
|..    o .        |
|..     o .       |
|o .  . .o        |
|.o..  o.S. o     |
| ++o. .o... o    |
|o o=.* .o.   .   |
| +..Xo=.oE. .    |
|.+B*..+Bo ..     |
+----[SHA256]-----+
[root@b2cb61f3b58d /]#

2,生成ecdsa_key


[root@b2cb61f3b58d /]# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
Generating public/private ecdsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /etc/ssh/ssh_host_ecdsa_key.
Your public key has been saved in /etc/ssh/ssh_host_ecdsa_key.pub.
The key fingerprint is:
SHA256:0HFmAoFJNpWUJ1fcX7rBOE/ERiySHsN6xxfNAxnqs00 root@b2cb61f3b58d
The key's randomart image is:
+---[ECDSA 256]---+
|   .+===o+=o *=o |
|   .o.+.o*B +.*.+|
|      .+.o * B +.|
|       .. + = B  |
|        S. + E o |
|            = o  |
|           . .   |
|                 |
|                 |
+----[SHA256]-----+
[root@b2cb61f3b58d /]#

3,生成ed25519_key


[root@b2cb61f3b58d /]# ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /etc/ssh/ssh_host_ed25519_key.
Your public key has been saved in /etc/ssh/ssh_host_ed25519_key.pub.
The key fingerprint is:
SHA256:u2MOmiR0BSfUmfGYGtyuRgsVGSFWx7SGB+i66zJj93E root@b2cb61f3b58d
The key's randomart image is:
+--[ED25519 256]--+
|  o+XB=+         |
| ..o.X==         |
| .  = O .        |
|  .. B           |
| .o + . S        |
|.. + o   .       |
| .. =..E.        |
|=. = oo.o.       |
|==. +. oo.       |
+----[SHA256]-----+
[root@b2cb61f3b58d /]#

退出容器,并生成新的Docker镜像:


[root@b2cb61f3b58d /]# exit
exit
[root@docker ~]# docker commit my-centos1 centos_sshd:7.0
sha256:6cfc9c28a7774889f6987cfca6d28a8b8153b3d4265bae40c4ecfe8333c09d00
[root@docker ~]#
[root@docker ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
centos_sshd   7.0       6cfc9c28a777   23 seconds ago   405MB
centos        7         eeb6ee3f44bd   17 months ago    204MB
[root@docker ~]#

启动新的容器,并查看容器是否构建:


[root@docker ~]# docker run -dit --name centos_7.0-1 centos_sshd:7.0
0ec5851688175a9a06a3596513cef8ee1f255455f2a5b7806971dedace852163
[root@docker ~]# docker ps
CONTAINER ID   IMAGE             COMMAND       CREATED          STATUS          PORTS     NAMES
0ec585168817   centos_sshd:7.0   "/bin/bash"   6 seconds ago    Up 6 seconds              centos_7.0-1
b2cb61f3b58d   centos:7          "/bin/bash"   10 minutes ago   Up 10 minutes             my-centos1
[root@docker ~]#

进入容器,查看IP地址,并运行脚本:


[root@0ec585168817 /]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.17.0.3  netmask 255.255.0.0  broadcast 172.17.255.255ether 02:42:ac:11:00:03  txqueuelen 0  (Ethernet)RX packets 8  bytes 656 (656.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@0ec585168817 /]# ./auto_sshd.sh

测试ssh:


[root@docker ~]# ssh root@172.17.0.3
The authenticity of host '172.17.0.3 (172.17.0.3)' can't be established.
ECDSA key fingerprint is SHA256:0HFmAoFJNpWUJ1fcX7rBOE/ERiySHsN6xxfNAxnqs00.
ECDSA key fingerprint is MD5:21:ce:10:d6:f3:53:c4:16:1d:76:cd:05:4e:f9:22:54.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.17.0.3' (ECDSA) to the list of known hosts.
root@172.17.0.3's password:  # 输入密码lyx
[root@0ec585168817 ~]#  登录成功

2,dockerfile构建镜像实战

dockerfile文档内容如下:

# this is a dockerfile
FROM centos:7
MAINTAINER LYX 123456@qq.com
RUN echo '正在构建镜像'
WORKDIR /home/xdclass
COPY 123.txt /home/xdclass
RUN yum install net-tools -y

文档详解:

#  注释
FROM    基于哪个镜像
MAINTAINER   注明含义
COPY  复制
ADD  复制文件到容器里面而copy只是单纯复制
而add如果复制一个压缩包进入容器并且解压
WORKDIR   指定一个路径作为工作目录如果路径不存在自定创建
ENV  环境变量
EXPOSE   暴露容器端口给宿主机
RUN  执行后面的命令
ENTRYPOINT  输出在容器启动之后  如写多条只执行最后一条
CMD    输出在容器启动之后   在末尾  可以被覆盖
如执行:docker run mycentos:v1
命令格式:shell命令格式:RUN yum install net-tools -yexec命令格式:['RUN','yum','install','net-tools','-y']
进行构建dockerfile:

[root@docker ~]# docker images   查看原有镜像
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
mycentos     v1        64e6184ab6d4   28 minutes ago   403MB
centos       7         eeb6ee3f44bd   16 months ago    204MB[root@docker ~]# vi dockerfile
# this is a dockerfile
FROM centos:7
MAINTAINER LYX 123456@qq.com
RUN echo '正在构建镜像'
WORKDIR /home/xdclass
COPY 123.txt /home/xdclass
RUN yum install net-tools -y
#wq 保存退出[root@docker ~]# docker build -t mycentos:v2 .      那个点.代表当前路径


[root@docker ~]# docker images  进行查看
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
mycentos     v2        380079b451ef   5 minutes ago    403MB  #制作完成
mycentos     v1        64e6184ab6d4   38 minutes ago   403MB
centos       7         eeb6ee3f44bd   16 months ago    204MB[root@docker ~]# docker run -it mycentos:v2 /bin/bash  进入v2容器[root@b3bced1b5262 xdclass]# ls  查看是否把123.txt文档拷贝进去
123.txt  # 已经拷贝[root@b3bced1b5262 xdclass]# ifconfig   查看net-tools是否执行成功
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)RX packets 8  bytes 656 (656.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@b3bced1b5262 xdclass]# exit  退出
exit
[root@docker ~]#

实验:Dockerfile构建带sshd服务的自定义镜像

建立/user/sshd目录,并切换到该目录:


[root@docker ~]# mkdir -p /user/sshd
[root@docker ~]# cd /user/sshd
[root@docker sshd]#

编写Dockerfile文件,注意文件的首字母必须大写。


[root@docker sshd]# cat Dockerfile
FROM centos:7
MAINTAINER lyx lyx@qq.com
RUN yum -y install openssh-server openssh-clients net-tools
RUN echo 'root:lyx' | chpasswd
RUN /usr/sbin/sshd-keygen
EXPOSE 22
CMD /usr/sbin/sshd -D
[root@docker sshd]#

利用docker build命令构建自定义镜像,镜像名为sshd:v1.0。


[root@docker sshd]# docker build -t sshd:v1.0 .

启动容器:


[root@docker sshd]# docker run -dit --name test_sshd sshd:v1.0
3d0879e584d9b55f23db1f6e707e96a489341f8af4f96e5f6c72b57f3bbeaa01
[root@docker sshd]#

[root@docker ~]# docker ps -a
CONTAINER ID   IMAGE       COMMAND                   CREATED          STATUS          PORTS     NAMES
3d0879e584d9   sshd:v1.0   "/bin/sh -c '/usr/sb…"   12 minutes ago   Up 12 minutes   22/tcp    test_sshd
[root@docker ~]#从docker ps –a命令的显示现象可以看到
容器名为test_sshd的容器状态为UP状态,表示容器创建成功,并且正常运行。

进入test_sshd容器,查看IP地址:


[root@docker sshd]# docker exec -it test_sshd /bin/bash
[root@3d0879e584d9 /]#
[root@3d0879e584d9 /]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)RX packets 8  bytes 656 (656.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@3d0879e584d9 /]#容器的IP地址为172.17.0.3

进行测试:


[root@docker ~]# ssh 172.17.0.2
The authenticity of host '172.17.0.2 (172.17.0.2)' can't be established.
ECDSA key fingerprint is SHA256:iVVPtrCVsq6ae2un0QboTjQgKMvQ0eLrstgar3UI9Z0.
ECDSA key fingerprint is MD5:ae:a7:36:47:f7:dd:64:9a:b2:a6:01:3d:42:ce:54:55.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.17.0.2' (ECDSA) to the list of known hosts.
root@172.17.0.2's password: # 输出密码lyx
[root@3d0879e584d9 ~]# 登录成功

镜像分层结构解析

[root@docker ~]# docker rmi mycentos:v2  删除v2
Untagged: mycentos:v2
Deleted: sha256:380079b451ef871139544588e61e119d552bdc09ab75d4f67059de0939240be8[root@docker ~]# docker images  查看本地镜像
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
centos       7         eeb6ee3f44bd   16 months ago   204MB[root@docker ~]# docker history mycentos:v1
IMAGE          CREATED         CREATED BY                                       SIZE      COMMENT
401a8637ecf7   2 minutes ago   RUN /bin/sh -c yum install net-tools -y # bu…   199MB     buildkit.dockerfile.v0
<missing>      3 minutes ago   COPY 123.txt /home/xdclass # buildkit            4B        buildkit.dockerfile.v0
<missing>      3 minutes ago   WORKDIR /home/xdclass                            0B        buildkit.dockerfile.v0
<missing>      3 minutes ago   RUN /bin/sh -c echo "正在构建镜像!!!" # buil…   0B        buildkit.dockerfile.v0
<missing>      3 minutes ago   MAINTAINER XD 123456@qq.com                      0B        buildkit.dockerfile.v0
<missing>      16 months ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]             0B
<missing>      16 months ago   /bin/sh -c #(nop)  LABEL org.label-schema.sc…   0B
<missing>      16 months ago   /bin/sh -c #(nop) ADD file:b3ebbe8bd304723d4…   204MB
[root@docker ~]#

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐一个免费的、开源的大数据工程学习教程

在当今信息爆炸的时代&#xff0c;每一个企业都会产生大量的数据&#xff0c;而大数据也已经成为很多企业发展的重要驱动力&#xff0c;然而如何有效得处理和分析这些海量的数据&#xff0c;却是一个非常有挑战的技术。 今天推荐一个免费的数据工程教程&#xff0c;带你系统化…

【文档智能多模态】英伟达ECLAIR-端到端的文档布局提取,并集成阅读顺序方法

笔者在前期一个系列分享了各种文档智能相关的技术方法&#xff0c;可以参考《文档智能系列栏目》&#xff0c;涵盖各种常见方法。 下面直接看看这个端到端的文档智能结构化方法&#xff0c;供参考。 方法 一、架构 ECLAIR 采用了一个较大的视觉编码器&#xff08;657M 参数…

解锁Netty:Channel更替与HashMap管理的奇妙联动

个人CSDN博客主页&#xff1a; java之路-CSDN博客 ( 期待您的关注 ) 目录 Netty 的 Channel 机制探秘 HashMap 在 Netty 中的角色 创建新 Channel 时的操作步骤 新 Channel 的创建流程 确定老 Channel 的标识 移除老 Channel 的具体方法 从 HashMap 中移除 关闭和回收老…

小白零基础如何搭建CNN

1.卷积层 在PyTorch中针对卷积操作的对象和使用的场景不同&#xff0c;如有1维卷积、2维卷积、 3维卷积与转置卷积&#xff08;可以简单理解为卷积操作的逆操作&#xff09;&#xff0c;但它们的使用方法比较相似&#xff0c;都可以从torch.nn模块中调用&#xff0c;需要调用的…

12.翻转、对称二叉树,二叉树的深度

反转二叉树 递归写法 很简单 class Solution { public:TreeNode* invertTree(TreeNode* root) {if(rootnullptr)return root;TreeNode* tmp;tmproot->left;root->leftroot->right;root->righttmp;invertTree(root->left);invertTree(root->right);return …

算法之 博弈问题

文章目录 巴什博弈292.Nim 游戏 尼姆博弈斐波那契博弈其他博弈1025.除数博弈 博弈问题&#xff0c;就是双方之间的PK,关注的重点是 谁先&#xff1f;以及A,B各自赢的条件 一般有数学问题&#xff0c;动态规划&#xff0c;搜索进行求解 巴什博弈 下面的这题Nim 游戏&#xff0c;…

Linux 安装 Ollama

1、下载地址 Download Ollama on Linux 2、有网络直接执行 curl -fsSL https://ollama.com/install.sh | sh 命令 3、下载慢的解决方法 1、curl -fsSL https://ollama.com/install.sh -o ollama_install.sh 2、sed -i s|https://ollama.com/download/ollama-linux|https://…

DDR原理详解

DDR原理详解 存储器主要分为只读存储器 ROM 和随机存取存储器 RAM两大类。 ROM&#xff1a;只读存储器 ROM 所存数据&#xff0c;一般是装入整机前事先写好的,整机工作过程中只能读出&#xff0c;ROM所存数据稳定&#xff0c;断电后所存数据也不会改变。 RAM&#xff1a;随机…

推荐一款 免费的SSL,自动续期

支持自动续期 、泛域名 、可视化所有证书时效性 、可配置CDN 的一款工具。免费5个泛域名和1个自动更新。 链接 支持&#xff1a;nginx、通配符证书、七牛云、腾讯云、阿里云、CDN、OSS、LB&#xff08;负载均衡&#xff09; 执行自动部署脚本 提示系统过缺少crontab 安装cro…

手写一个C++ Android Binder服务及源码分析

手写一个C Android Binder服务及源码分析 前言一、 基于C语言编写Android Binder跨进程通信Demo总结及改进二、C语言编写自己的Binder服务Demo1. binder服务demo功能介绍2. binder服务demo代码结构图3. binder服务demo代码实现3.1 IHelloService.h代码实现3.2 BnHelloService.c…

将 AMD Zynq™ RFSoC 扩展到毫米波领域

目录 将 AMD Zynq™ RFSoC 扩展到毫米波领域Avnet XRF RFSoC 系统级模块适用于 MATLAB 的 Avnet RFSoC Explorer 工具箱5G mmWave PAAM 开发平台突破性的宽带毫米波波束成形特征&#xff1a;OTBF103 Mathworks Simulink 模型优化毫米波应用中的射频信号路径 用于宽带毫米波上/下…

征程 6 相比征程 5 对算子支持扩展的具体案例讲解

引言 征程 6 相比于征程 5&#xff0c;在整体架构上得到了升级&#xff0c;相对应的&#xff0c;算法工具链的算子支持也得到了扩充&#xff0c;无论是算子支持的数量&#xff0c;还是 BPU 约束条件&#xff0c;征程 6 都有明显的加强&#xff0c;这就使得过去在征程 5 上无法…

蓝桥杯C语言组:博弈问题

概述 在编程的世界里&#xff0c;博弈问题就像是一场智力的“斗地主”&#xff0c;双方&#xff08;或者多方&#xff09;使出浑身解数&#xff0c;只为赢得最后的胜利。而蓝桥杯C语言比赛中的博弈问题&#xff0c;更是让无数参赛者又爱又恨的存在。它们就像是隐藏在代码森林中…

BS架构(笔记整理)

楔子.基本概念 1.在网络架构中&#xff1a; 服务器通常是集中式计算资源&#xff0c;负责处理和存储数据&#xff1b;客户机是请求这些服务的终端设备&#xff0c;可能是个人电脑或移动设备&#xff1b;浏览器则是客户机上用来与服务器交互的工具&#xff0c;负责展示网页内容…

【动态规划篇】:动态规划解决路径难题--思路,技巧与实例

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨ 文章所属专栏&#xff1a;动态规划篇–CSDN博客 文章目录 一.动态规划中的路径问题1.核心思路2.注意事项 二.例题讲解…

【Linux】深入理解linux权限

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;Linux 目录 前言 一、权限是什么 二、用户和身份角色 三、文件属性 1. 文件属性表示 2. 文件类型 3. 文件的权限属性 四、修改文件的权限属性和角色 1. …

嵌入式linux系统中VIM编辑工具用法与GCC参数详解

大家好,今天主要给大家分享一下,如何使用linux系统中的VIM编辑工具和GCC的参数详解。 第一:安装VIM 命令:sudo apt get install vim 第二:工作模式 普通模式:打开一个文件时的默认模式,按ESC返回普通模式 插入模式:i/o/a进入插入模式,不同在于在光标前后插入 可视…

【前端开发】HTML+CSS+JavaScript前端三剑客的基础知识体系了解

前言 &#x1f31f;&#x1f31f;本期讲解关于HTMLCSSJavaScript的基础知识&#xff0c;小编带领大家简单过一遍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 …

蓝桥杯---数青蛙(leetcode第1419题)

文章目录 1.题目重述2.例子分析3.思路分析4.思路总结5.代码解释 1.题目重述 这个题目算是模拟这个专题里面的一类比较难的题目了&#xff0c;他主要是使用crock这个单词作为一个整体&#xff0c;让我们确定&#xff1a;给你一个字符串&#xff0c;至少需要多少个青蛙进行完成鸣…

WidowX-250s 机械臂学习记录

官网教程&#xff1a;Python Demos — Interbotix X-Series Arms Documentation 系统&#xff1a;Ubuntu20.04&#xff0c;ROS1 相关的硬件编译配置跳过 Python Demos 这些演示展示了使用 Interbotix Python Arm 模块的各种方法&#xff08;点击链接查看完整的代码文档&…