编写dockerfile挂载卷、数据容器卷

news2024/11/17 1:51:38

编写dockerfile挂载卷

编写dockerfile文件

[root@wq docker-test-volume]# vim dockerfile1
[root@wq docker-test-volume]# cat dockerfile1
FROM centos

VOLUME ["volume01","volume02"]

CMD echo "------end------"
CMD /bin/bash
[root@wq docker-test-volume]#

使用dockerfile构建镜像

[root@wq docker-test-volume]# docker build -f dockerfile1 -t wq/centos:1.0 .
[+] Building 0.2s (5/5) FINISHED                                                                     docker:default
 => [internal] load build definition from dockerfile1                                                          0.1s
 => => transferring dockerfile: 124B                                                                           0.0s
 => [internal] load .dockerignore                                                                              0.1s
 => => transferring context: 2B                                                                                0.0s
 => [internal] load metadata for docker.io/library/centos:latest                                               0.0s
 => [1/1] FROM docker.io/library/centos                                                                        0.0s
 => exporting to image                                                                                         0.0s
 => => exporting layers                                                                                        0.0s
 => => writing image sha256:c32b80a59aaf0df707899602daf20e786973349dbc09307d516646b5c73db27f                   0.0s
 => => naming to docker.io/wq/centos:1.0                                                                       0.0s

查看镜像,并用此镜像创建容器

[root@wq docker-test-volume]# docker images
REPOSITORY            TAG       IMAGE ID       CREATED       SIZE
tomcat02              1.0       02ea20370fec   5 hours ago   684MB
nginx                 latest    605c77e624dd   2 years ago   141MB
tomcat                latest    fb5657adc892   2 years ago   680MB
wordpress             latest    c3c92cc3dcb1   2 years ago   616MB
redis                 latest    7614ae9453d1   2 years ago   113MB
mysql                 5.7       c20987f18b13   2 years ago   448MB
mysql                 latest    3218b38490ce   2 years ago   516MB
centos                latest    5d0da3dc9764   2 years ago   231MB
wq/centos             1.0       c32b80a59aaf   2 years ago   231MB
portainer/portainer   latest    580c0e4e98b0   2 years ago   79.1MB
elasticsearch         7.6.2     f29a1ee41030   3 years ago   791MB
[root@wq docker-test-volume]#
[root@wq docker-test-volume]#
[root@wq docker-test-volume]# docker run -it c32b80a59aaf /bin/bash
[root@c9a8bacfba06 /]# ls -l
total 56
lrwxrwxrwx   1 root root    7 Nov  3  2020 bin -> usr/bin
drwxr-xr-x   5 root root  360 Mar  2 12:28 dev
drwxr-xr-x   1 root root 4096 Mar  2 12:28 etc
drwxr-xr-x   2 root root 4096 Nov  3  2020 home
lrwxrwxrwx   1 root root    7 Nov  3  2020 lib -> usr/lib
lrwxrwxrwx   1 root root    9 Nov  3  2020 lib64 -> usr/lib64
drwx------   2 root root 4096 Sep 15  2021 lost+found
drwxr-xr-x   2 root root 4096 Nov  3  2020 media
drwxr-xr-x   2 root root 4096 Nov  3  2020 mnt
drwxr-xr-x   2 root root 4096 Nov  3  2020 opt
dr-xr-xr-x 174 root root    0 Mar  2 12:28 proc
dr-xr-x---   2 root root 4096 Sep 15  2021 root
drwxr-xr-x  11 root root 4096 Sep 15  2021 run
lrwxrwxrwx   1 root root    8 Nov  3  2020 sbin -> usr/sbin
drwxr-xr-x   2 root root 4096 Nov  3  2020 srv
dr-xr-xr-x  13 root root    0 Feb 27 06:47 sys
drwxrwxrwt   7 root root 4096 Sep 15  2021 tmp
drwxr-xr-x  12 root root 4096 Sep 15  2021 usr
drwxr-xr-x  20 root root 4096 Sep 15  2021 var
drwxr-xr-x   2 root root 4096 Mar  2 12:28 volume01
drwxr-xr-x   2 root root 4096 Mar  2 12:28 volume02
[root@c9a8bacfba06 /]# exit
exit

查看卷挂载的路径

[root@wq ~]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED              STATUS              PORTS                                                  NAMES
75bf676f94c1   c32b80a59aaf          "/bin/bash"              About a minute ago   Up About a minute                                                          crazy_torvalds
[root@wq ~]# docker inspect 75bf676f94c1

测试文件是否同步

在容器中的volume01创建一个test.txt文件

[root@c9a8bacfba06 /]# ls -l
total 56
lrwxrwxrwx   1 root root    7 Nov  3  2020 bin -> usr/bin
drwxr-xr-x   5 root root  360 Mar  2 12:28 dev
drwxr-xr-x   1 root root 4096 Mar  2 12:28 etc
drwxr-xr-x   2 root root 4096 Nov  3  2020 home
lrwxrwxrwx   1 root root    7 Nov  3  2020 lib -> usr/lib
lrwxrwxrwx   1 root root    9 Nov  3  2020 lib64 -> usr/lib64
drwx------   2 root root 4096 Sep 15  2021 lost+found
drwxr-xr-x   2 root root 4096 Nov  3  2020 media
drwxr-xr-x   2 root root 4096 Nov  3  2020 mnt
drwxr-xr-x   2 root root 4096 Nov  3  2020 opt
dr-xr-xr-x 174 root root    0 Mar  2 12:28 proc
dr-xr-x---   2 root root 4096 Sep 15  2021 root
drwxr-xr-x  11 root root 4096 Sep 15  2021 run
lrwxrwxrwx   1 root root    8 Nov  3  2020 sbin -> usr/sbin
drwxr-xr-x   2 root root 4096 Nov  3  2020 srv
dr-xr-xr-x  13 root root    0 Feb 27 06:47 sys
drwxrwxrwt   7 root root 4096 Sep 15  2021 tmp
drwxr-xr-x  12 root root 4096 Sep 15  2021 usr
drwxr-xr-x  20 root root 4096 Sep 15  2021 var
drwxr-xr-x   2 root root 4096 Mar  2 12:28 volume01
drwxr-xr-x   2 root root 4096 Mar  2 12:28 volume02
[root@75bf676f94c1 /]# cd volume01
[root@75bf676f94c1 volume01]# touch test.txt
[root@75bf676f94c1 volume01]# ls
test.txt
[root@75bf676f94c1 volume01]#
[root@75bf676f94c1 volume01]# pwd
/volume01
[root@75bf676f94c1 volume01]# exit
exit

新建终端查看主机挂载的目录下有没有出现test.txt文件

[root@wq ~]# cd /var/lib/docker/volumes/e6c1b5cd8bf557012f82df80300702dd316fbcbed3188a601f6c6256c855ee32/_data
[root@wq _data]# ls
test.txt
[root@wq _data]#

测试成功


数据容器卷

作用:用来实现容器之间的数据共享

使用自己创建的镜像运行centos01

[root@wq ~]# docker images |grep centos
centos                latest    5d0da3dc9764   2 years ago    231MB
wq/centos             1.0       c32b80a59aaf   2 years ago    231MB
[root@wq ~]# docker run -it --name centos01 wq/centos:1.0
[root@8827c22608a0 /]# ls -l
total 56
lrwxrwxrwx   1 root root    7 Nov  3  2020 bin -> usr/bin
drwxr-xr-x   5 root root  360 Mar  3 05:36 dev
drwxr-xr-x   1 root root 4096 Mar  3 05:36 etc
drwxr-xr-x   2 root root 4096 Nov  3  2020 home
lrwxrwxrwx   1 root root    7 Nov  3  2020 lib -> usr/lib
lrwxrwxrwx   1 root root    9 Nov  3  2020 lib64 -> usr/lib64
drwx------   2 root root 4096 Sep 15  2021 lost+found
drwxr-xr-x   2 root root 4096 Nov  3  2020 media
drwxr-xr-x   2 root root 4096 Nov  3  2020 mnt
drwxr-xr-x   2 root root 4096 Nov  3  2020 opt
dr-xr-xr-x 152 root root    0 Mar  3 05:36 proc
dr-xr-x---   2 root root 4096 Sep 15  2021 root
drwxr-xr-x  11 root root 4096 Sep 15  2021 run
lrwxrwxrwx   1 root root    8 Nov  3  2020 sbin -> usr/sbin
drwxr-xr-x   2 root root 4096 Nov  3  2020 srv
dr-xr-xr-x  13 root root    0 Feb 27 06:47 sys
drwxrwxrwt   7 root root 4096 Sep 15  2021 tmp
drwxr-xr-x  12 root root 4096 Sep 15  2021 usr
drwxr-xr-x  20 root root 4096 Sep 15  2021 var
drwxr-xr-x   2 root root 4096 Mar  3 05:36 volume01
drwxr-xr-x   2 root root 4096 Mar  3 05:36 volume02
[root@8827c22608a0 /]#

创建centos02容器

[root@wq ~]# docker ps |grep centos
8827c22608a0   wq/centos:1.0   "/bin/sh -c /bin/bash"   About a minute ago   Up About a minute                                                          centos01

#--volumes-from 数据卷容器,挂载到centos01上
[root@wq ~]# docker run -it --name centos02 --volumes-from centos01 wq/centos:1.0
[root@1eefed24461c /]# ls -l
total 56
lrwxrwxrwx   1 root root    7 Nov  3  2020 bin -> usr/bin
drwxr-xr-x   5 root root  360 Mar  3 05:38 dev
drwxr-xr-x   1 root root 4096 Mar  3 05:38 etc
drwxr-xr-x   2 root root 4096 Nov  3  2020 home
lrwxrwxrwx   1 root root    7 Nov  3  2020 lib -> usr/lib
lrwxrwxrwx   1 root root    9 Nov  3  2020 lib64 -> usr/lib64
drwx------   2 root root 4096 Sep 15  2021 lost+found
drwxr-xr-x   2 root root 4096 Nov  3  2020 media
drwxr-xr-x   2 root root 4096 Nov  3  2020 mnt
drwxr-xr-x   2 root root 4096 Nov  3  2020 opt
dr-xr-xr-x 153 root root    0 Mar  3 05:38 proc
dr-xr-x---   2 root root 4096 Sep 15  2021 root
drwxr-xr-x  11 root root 4096 Sep 15  2021 run
lrwxrwxrwx   1 root root    8 Nov  3  2020 sbin -> usr/sbin
drwxr-xr-x   2 root root 4096 Nov  3  2020 srv
dr-xr-xr-x  13 root root    0 Feb 27 06:47 sys
drwxrwxrwt   7 root root 4096 Sep 15  2021 tmp
drwxr-xr-x  12 root root 4096 Sep 15  2021 usr
drwxr-xr-x  20 root root 4096 Sep 15  2021 var
drwxr-xr-x   2 root root 4096 Mar  3 05:36 volume01
drwxr-xr-x   2 root root 4096 Mar  3 05:36 volume02

查看当前运行的容器

[root@wq ~]# docker ps |grep centos
1eefed24461c   wq/centos:1.0   "/bin/sh -c /bin/bash"   4 minutes ago   Up 4 minutes                                                          centos02
8827c22608a0   wq/centos:1.0   "/bin/sh -c /bin/bash"   6 minutes ago   Up 6 minutes                                                    centos01

 新建终端,进入第一个容器centos01,进行测试

[root@wq ~]# docker attach 8827c22608a0
[root@8827c22608a0 /]# ls -l
total 56
lrwxrwxrwx   1 root root    7 Nov  3  2020 bin -> usr/bin
drwxr-xr-x   5 root root  360 Mar  3 05:36 dev
drwxr-xr-x   1 root root 4096 Mar  3 05:36 etc
drwxr-xr-x   2 root root 4096 Nov  3  2020 home
lrwxrwxrwx   1 root root    7 Nov  3  2020 lib -> usr/lib
lrwxrwxrwx   1 root root    9 Nov  3  2020 lib64 -> usr/lib64
drwx------   2 root root 4096 Sep 15  2021 lost+found
drwxr-xr-x   2 root root 4096 Nov  3  2020 media
drwxr-xr-x   2 root root 4096 Nov  3  2020 mnt
drwxr-xr-x   2 root root 4096 Nov  3  2020 opt
dr-xr-xr-x 155 root root    0 Mar  3 05:36 proc
dr-xr-x---   2 root root 4096 Sep 15  2021 root
drwxr-xr-x  11 root root 4096 Sep 15  2021 run
lrwxrwxrwx   1 root root    8 Nov  3  2020 sbin -> usr/sbin
drwxr-xr-x   2 root root 4096 Nov  3  2020 srv
dr-xr-xr-x  13 root root    0 Feb 27 06:47 sys
drwxrwxrwt   7 root root 4096 Sep 15  2021 tmp
drwxr-xr-x  12 root root 4096 Sep 15  2021 usr
drwxr-xr-x  20 root root 4096 Sep 15  2021 var
drwxr-xr-x   2 root root 4096 Mar  3 05:36 volume01
drwxr-xr-x   2 root root 4096 Mar  3 05:36 volume02
[root@8827c22608a0 /]# cd volume01
[root@8827c22608a0 volume01]# ls
[root@8827c22608a0 volume01]# touch centos01
[root@8827c22608a0 volume01]# ls
centos01
[root@8827c22608a0 volume01]#

 再新建终端,进入第二个容器,查看是否存在文件

 创建centos03容器,再次挂载到centos01上,发现数据还是同步的

[root@wq ~]# docker run -it --name centos03 --volumes-from centos01 wq/centos:1.0
[root@90918e6deae0 /]# ls -l
total 56
lrwxrwxrwx   1 root root    7 Nov  3  2020 bin -> usr/bin
drwxr-xr-x   5 root root  360 Mar  3 05:50 dev
drwxr-xr-x   1 root root 4096 Mar  3 05:50 etc
drwxr-xr-x   2 root root 4096 Nov  3  2020 home
lrwxrwxrwx   1 root root    7 Nov  3  2020 lib -> usr/lib
lrwxrwxrwx   1 root root    9 Nov  3  2020 lib64 -> usr/lib64
drwx------   2 root root 4096 Sep 15  2021 lost+found
drwxr-xr-x   2 root root 4096 Nov  3  2020 media
drwxr-xr-x   2 root root 4096 Nov  3  2020 mnt
drwxr-xr-x   2 root root 4096 Nov  3  2020 opt
dr-xr-xr-x 163 root root    0 Mar  3 05:50 proc
dr-xr-x---   2 root root 4096 Sep 15  2021 root
drwxr-xr-x  11 root root 4096 Sep 15  2021 run
lrwxrwxrwx   1 root root    8 Nov  3  2020 sbin -> usr/sbin
drwxr-xr-x   2 root root 4096 Nov  3  2020 srv
dr-xr-xr-x  13 root root    0 Feb 27 06:47 sys
drwxrwxrwt   7 root root 4096 Sep 15  2021 tmp
drwxr-xr-x  12 root root 4096 Sep 15  2021 usr
drwxr-xr-x  20 root root 4096 Sep 15  2021 var
drwxr-xr-x   2 root root 4096 Mar  3 05:39 volume01
drwxr-xr-x   2 root root 4096 Mar  3 05:36 volume02
[root@90918e6deae0 /]# cd volume01
[root@90918e6deae0 volume01]# ls
centos01
[root@90918e6deae0 volume01]#

在centos03上进行创建文件,在centos01上查看

#centos03的操作
[root@90918e6deae0 /]# cd volume01
[root@90918e6deae0 volume01]# ls
centos01
[root@90918e6deae0 volume01]# touch centos03
[root@90918e6deae0 volume01]# ls
centos01  centos03
[root@90918e6deae0 volume01]#


#centos01的操作
[root@8827c22608a0 /]# cd volume01
[root@8827c22608a0 volume01]# ls
centos01
#centos03上创建好之后查看的
[root@8827c22608a0 volume01]# ls
centos01  centos03
[root@8827c22608a0 volume01]#

测试 删除centos01容器,查看centos02和centos03上的文件是否存在

最后发现删除centos01之后,文件依旧存在

所以这是备份机制,并不是共享机制

实战案例:

多个mysql实现数据共享

创建两个mysql容器mysql01和mysql02,使用--volumes-from将mysql02挂载到mysql01

[root@wq ~]# docker run -d -p 8031:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=000000 --name mysql01 mysql:5.7
aaea112657e0062c205e12a05f5a43f60cf82e890ca9ab211cddcaffaf51c464
[root@wq ~]# docker ps |grep mysql
aaea112657e0   mysql:5.7   "docker-entrypoint.s…"   8 seconds ago   Up 7 seconds   33060/tcp, 0.0.0.0:8031->3306/tcp, :::8031->3306/tcp   mysql01
94239899c5bd   mysql       "docker-entrypoint.s…"   2 days ago      Up 2 days      33060/tcp, 0.0.0.0:8006->3306/tcp, :::8006->3306/tcp   my_mysql


[root@wq ~]# docker run -d -p 8032:3306 -e MYSQL_ROOT_PASSWORD=000000 --name mysql02 --volumes-from mysql01 mysql:5.7
2f240ebc39900448342992075435f0c8250df7acba604e9a0cfdd16c3c3d0c6d
[root@wq ~]# docker ps |grep mysql
2f240ebc3990   mysql:5.7   "docker-entrypoint.s…"   6 seconds ago        Up 5 seconds        33060/tcp, 0.0.0.0:8032->3306/tcp, :::8032->3306/tcp   mysql02
aaea112657e0   mysql:5.7   "docker-entrypoint.s…"   About a minute ago   Up About a minute   33060/tcp, 0.0.0.0:8031->3306/tcp, :::8031->3306/tcp   mysql01
94239899c5bd   mysql       "docker-entrypoint.s…"   2 days ago           Up 2 days           33060/tcp, 0.0.0.0:8006->3306/tcp, :::8006->3306/tcp   my_mysql

测试

进入mysql01容器登录mysql

[root@wq ~]# docker exec -it aaea112657e0 /bin/bash
root@aaea112657e0:/#
root@aaea112657e0:/# mysql -uroot -p000000
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> create database w;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| w                  |
+--------------------+
5 rows in set (0.01 sec)

mysql> exit;
Bye
root@aaea112657e0:/# exit
exit
[root@wq ~]# docker stop aaea112657e0
aaea112657e0

#需要退出,并且停止mysql01容器运行,否则进不了mysql02

进入mysql02容器,登录mysql02进行查看验证库是否存在

[root@wq ~]# docker exec -it 2f240ebc3990 /bin/bash
root@2f240ebc3990:/# mysql -uroot -p000000
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| w                  |
+--------------------+
5 rows in set (0.00 sec)

mysql>

验证成功

结论:

容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器为止

一旦持久化了本地,这时候本地的数据是不会删除的

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

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

相关文章

Spring框架相关问题

Spring框架相关问题 一、Spring容器中的Bean是线程安全的吗?二、如何保证Spring容器中的Bean是线程安全的呢?三、什么情况下会触发Spring事务回滚?四、如果事务方法抛出IOException,是否会触发Spring事务回滚?五、什么…

在线简历制作网站免费推荐收藏备用

今天给大家推荐一个很实用的网站,对于要毕业的同学或者说跳槽的朋友比较有作用,对,就是一个免费方便的在线简历制作网站。其实免费的简历制作网站很多,但好用的良心的其实并不多,今天要推荐的这个虽然模板不算多&#…

1.2 在卷积神经网络中,如何计算各层感受野的大小

1.2 在卷积神经网络中,如何计算各层感受野的大小 分析与解答: 在卷积神经网络中,由于卷积的局部连接性,输出特征图上的每个节点的取值,是由卷积核在输入特征图对应位置的局部区域内进行卷积而得到的,因此这…

sql注入之sqli-labs/less-3 单引号加括号闭合

输入单引号试探: id1 报错信息里面出现 ) 说明闭合符合里面还有个 ) 再次试探:id1 ) order by 3 -- 查看回显位置: id-1%20%27)%20union%20select%201,2,3%20-- 查看数据库: id-1%20%27)%20union%20select%201,2,database()%2…

PDF 解析问题调研

说点真实的感受 :网上看啥组件都好,实际测,啥组件都不行。效果好的不开源收费,开源的效果不好。测试下来,发现把组件融合起来,还是能不花钱解决问题的,都是麻烦折腾一些。 这里分享了目前网上能…

幻兽帕鲁专用服务器搭建之Linux部署配置教程

大家好我是飞飞,上一期我分享了Windows系统的幻兽帕鲁服务器搭建教程。因为幻兽帕鲁这游戏对服务器的配置有一定的要求,很多小伙伴就寻思用Linux系统搭建占用会不会小一点?有计算机基础的小伙伴都知道Linux系统和Windows系统相比,…

Git实战(2)

git work flow ------------------------------------------------------- ---------------------------------------------------------------- 场景问题及处理 问题1:最近提交了 a,b,c,d记录,想把b记录删掉其他提交记录保留: git reset …

Hololens 2应用开发系列(2)——MRTK基础知识及配置文件配置(上)

Hololens 2应用开发系列(2)——MRTK基础知识及配置文件配置 一、前言二、MRTK基础知识2.1 MRTK概述2.2 MRTK运行逻辑2.3 MRTK配置文件介绍2.4 MRTK服务 三、配置文件使用3.1 总配置文件3.2 相机配置3.3 其他配置 参考文献 一、前言 在前面的文章中&…

机器学习中类别不平衡问题的解决方案

类别不平衡问题 解决方案简单方法收集数据调整权重阈值移动 数据层面欠采样过采样采样方法的优劣 算法层面代价敏感集成学习:EasyEnsemble 总结 类别不平衡(class-imbalance)就是指分类任务中不同类别的训练样例数目差别很大的情况 解决方案…

解决Excel客户端中的Copilot灰色不可用

很多小伙伴已经用上了office套件中的copilot功能 Copilot for Microsoft 365账号介绍与相关问题的解答 Copilot for Microsoft 365账号登录指南 Copilot for Microsoft 365功能使用指南 问题发现 大部分人使用的都是Word和PowerPoint功能,但是也有部分小伙伴使…

Vue项目的快速搭建

Vue项目的快速搭建 一、下载并安装node.js二、安装Vue脚手架三、创建vue项目四、项目启动五、VS Code下载安装 一、下载并安装node.js 首先确保已经安装了Node.js。如果没有安装,可以去官网(https://nodejs.org/)下载并安装最新版本的Node.j…

第16章-DNS

目录 1. 域名 1.1 产生背景 1.2 概述 1.3 域名的树形层次化结构 2. DNS 2.1 概述 2.2 工作机制 3. DNS查询模式 3.1 递归查询: 3.2 迭代查询: 4. 相关知识点 4.1 集中式DNS 4.2 国内通用DNS 4.3 配置DNS代理 1. 域名 1.1 产生背景 ① IP…

rhcsa(rh134)

shell 查看用户shell a、如下查看/etc/shells文件列出了系统上所有可用的 shell(具体的可用的 shell 列表可能会因不同的红帽版本和配置而有所不同) (如下图/etc/shells文件包含/bin/tmux并不意味着tmux是一个shell。实际上,/etc/…

通过多进程并发方式(fork)实现服务器(注意要回收子进程)

以下内容为视频学习记录。 1、父进程accept后返回的文件描述符为cfd以及用于创建连接的lfd; 调用fork()创建子进程后,子进程继承cfd,lfd,通过该cfd与连接过来的客户端通信,lfd对子进程来说没用,可以直接close(lfd); 对于父进程来说&#x…

web基础03-JavaScript

目录 一、JavaScript基础 1.变量 2.输出 3.变量提升 4.区块 5.JavaScript数据类型 6.查看数值类型 7.undefined和null 8.布尔值 9.和的区别 10.算数/三元/比较/逻辑/赋值运算符 11.特殊字符 12.字符串 (1)获取字符串长度 (2&am…

C# Open Vocabulary Object Detection 部署开放域目标检测

目录 介绍 效果 模型信息 owlvit-image.onnx owlvit-post.onnx owlvit-text.onnx 项目 代码 Form1.cs OWLVIT.cs 下载 C# Open Vocabulary Object Detection 部署开放域目标检测 介绍 训练源码地址:https://github.com/google-research/scenic/tree/…

flink重温笔记(九):Flink 高级 API 开发——flink 四大基石之WaterMark(Time为核心)

Flink学习笔记 前言:今天是学习 flink 的第 9 天啦!学习了 flink 四大基石之 Time的应用—> Watermark(水印,也称水位线),主要是解决数据由于网络延迟问题,出现数据乱序或者迟到数据现象&…

九州金榜|导致孩子厌学的家庭因素有哪些?

造成孩子厌学的因素有很多,其中家庭因素是非常重要的因素,而家庭因素造成孩子厌学的原因主要是因为家长在教育中,更多的不懂如何正确教育孩子,就会造成孩子厌学,下面九州金榜家庭教育从以下几个方面分析因为家庭因素造…

C/C++工程师面试题(数据库篇)

索引的优缺点 索引是一种支持快速查找特定行的数据结构,如果没有索引,就需要遍历整个表进行查找。用于提高数据检索的速度和效率。 好处: 提高检索速度: 索引可以加快数据的检索速度,因为它们允许数据库系统直接定位到…

枚举法实例以及试题

题目 1 因子个数 思路: 从因子1找到它本身,其中我们发现因子都是成对出现的,除非它是完全平方数,因此我们采用for循环一个一个找出来就行,查找它因子的个数。 题目 2 阶乘因子 思路: 创建一个【n+1】的数组,初始值全都为0,用来存放它的质数因子个数。用两个for循环,…