docker學習與使用

一、docker概述

1.docker是什么

  • 是一個開源的應用容器引擎,基于go語言開發并遵循apache2.0協議開源

  • 是在Linux容器里運行應用的開源工具

  • 是一種輕量級的 “虛擬機”

  • Docker的容器技術,可以在一臺主機上輕松為任何應用創建一個輕量級的、可移植的、自給自足的容器
    在這里插入圖片描述

2.docker的優點

  1. 達到應用組件級別的“一次封裝,到處運行”的目的。
  2. 這里的組件,既可以是一個應用,也可以是一套服務,甚至是一個完整的操作
  3. 跨平臺一致性
  4. 資源隔離
  5. 輕量級資源占用,和傳統虛擬機相比,docker容器共享虛擬機內核

3.docker的架構

  • 鏡像(image):Docker 鏡像(Image),就相當于是一個 root 文件系統。比如官方鏡像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統的 root 文件系統。

  • 容器(Container):鏡像(Image)和容器(Container)的關系,就像是面向對象程序設計中的類和實例一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器可以被創建、啟動、停止、刪除、暫停

  • 倉庫(Repository):倉庫可看成一個代碼控制中心,用來保存鏡像。

Docker 使用客戶端-服務器 (C/S) 架構模式,使用遠程API來管理和創建Docker容器。

Docker 容器通過 Docker 鏡像來創建。

4.容器概念的兩個重要技術

Docker本質就是宿主機的一個進程,docker是通過namespace實現資源隔離,通過cgroup實現資

源限制 ,通過**寫時復制技術(copy-on-write)**實現高效文件操作 (類似于虛擬機的磁盤,比如分

配500g并不是實際占用物理磁盤500g,只有當需要修改時才復制一份數據)

二、docker安裝

1.centos裝docker

先刪除舊版本docker

yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine

  • yum install -y yum-utils device-mapper-persistent-data lvm2
    

yum-utils:提供了 yum-config-manager 工具。

device mapper: 是Linux內核中支持邏輯卷管理的通用設備映射機制,它為實現用于存儲資源管理的塊設備驅動提供了一個高度模塊化的內核架構。

device mapper存儲驅動程序需要 device-mapper-persistent-data 和 lvm2。

  • yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

設置阿里云鏡像,官方源比較慢

  • yum install -y docker-ce docker-ce-cli containerd.io
    

docker-ce 社區版

docker-ce-cli 客服端命令行工具

containerd.io 一個容器運行時接口的實現,管理容器的啟動,創建,刪除,停止等操作

docker-compose-plugin 和K8s一樣是容器編排工具,不過前者適合開發測試小規模環境,K8s適合大規模

  • systemctl start docker.service
    systemctl enable docker.service 
    

開啟服務和打開服務自啟動

docker version

在這里插入圖片描述

2. 內網裝docker+docker-compose

  1. 下載docker源碼
https://download.docker.com/

按需下載

  1. 將下載好的的包上傳到對應服務器

解壓

tar -zxvf docker-26.1.4.tgz

解壓完之后的文件夾是docker

  1. 移動到可執行文件目錄下
mv docker/* /usr/bin/
  1. 配置docker.service
vim /usr/lib/systemd/system/docker.service

將下面的內容填進去

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s[Install]
WantedBy=multi-user.target
  1. 啟動docker服務并開啟自啟動
systemctl daemon-reload
systemctl start docker.service
docker info
systemctl enable docker

如果習慣用容器編排,附帶docker-compose下載地址

curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 -o /usr/bin/docker-compose

github連不上用這個地址 curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-uname -s-uname -m > /usr/bin/docker-compose

給他可執行的權限

sudo chmod +x /usr/bin/docker-compose

檢查是否成功安裝

docker-compose --version
### 3. 配置加速器
  1. 配置阿里云鏡像加速

    1. 登錄我們的阿里云控制臺,然后找到容器鏡像服務**

    2. 找到鏡像加速器---->鏡像加速地址

    3. 選擇對應的加速地址

  2. 配置別的加速器地址

網上直接搜,加速器地址存活周期不一定

搜到之后

vim /etc/docker/daemon.json

復制進去即可

4. 刪除docker

  1. 卸載依賴
yum remove docker-ce docker-ce-cli containerd.io
  1. 刪除資源
rm -rf /var/lib/docker

三、常用基礎命令

1.查看鏡像

docker images 

2.查看容器

docker ps -a  # -a參數是顯示所有容器包括隱藏的

3.下載鏡像

docker pull
docker pull nginx:1.22-alpine
docker search 查找鏡像

latest 最新版本

stable 穩定版本

nginx:1.20.2 指定版本

默認是latest 最新版本 ,若要指定版本 可在pull 后要下載的加上版本號

例子:

docker pull mysql:8.4.3

4.運行鏡像(沒下載會自動下載)

docker run
例子:
# 指定配置文件目錄,root密碼
docker run -d --name mysql8.4.3 -v /usr/local/mysql-docker/conf/:/etc/mysql/conf.d -v /usr/local/mysql-docker/data/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=admin@123 -p 3307:3306 mysql:8.4.3

-d 容器以守護進程的方式運行

–name 指定容器的名稱 方便docker start stop ,不用容器ID了太難記

-v 數據卷掛載

-e root的mysql密碼

-p 端口內外部映射

mysql:8.4.3 運行的名字和版本 如果鏡像倉庫沒有自動下載

5.刪除鏡像

docker rmi image名字

6.刪除容器

docker rm 容器名字或者id

7.容器管理

docker create 創建容器 --name
docker start 啟動容器
docker stop 停止容器
docker restart 重啟容器
docker kill 強制停止容器
docker rm 刪除容器
批量刪除所有容器 docker rm -f `docker ps -a -q`

8.查看容器狀態

docker status

在這里插入圖片描述

單獨查看某一進程的信息

docker top mysql8.4.3

9.根據容器生成鏡像

git原理差不多,比如有的nginx的配置文件結構不好,你以后生成的容器是修改過后的conf文件,添加之后,把這個容器生成一個鏡像,后邊的都是容器了

docker commit -m="提交的描述信息" -a="作者" 容器id 目標鏡像名:[TAG]

10.IP綁定端口

顯示用戶只能通過宿主機的某個網卡連接這個端口
docker run -d --name "nginx_bind_ip" -p 172.16.1.81:12306:80 nginx:1.20.2-alpine

11.查看容器信息

docker inspect 容器名字或者id
加| jq  .[].HostConfig.Binds
能看到掛載的目錄端口還有容器網絡啥的

12.查看容器日志

docker logs -n 容器名

13. 容器主機直接拷貝文件

docker cp
例子:
docker exec -it 6eda31ad7987 /bin/bash,先進入到容器內部docker cp 6eda31ad7987:/home/test.java /home

14. sl大法(復制鏡像可建立遠程docker倉庫)

docker image save -o XXXX#docker save
docker image load -i #docker load

四、docker裝各種服務

1. docker裝mysql(8.4.3)

  1. 拉去鏡像
docker pull mysql:8.4.3
  1. 運行起來
docker run -d --name mysql8.4.3 -v /usr/local/mysql-docker/conf/:/etc/mysql/conf.d -v /usr/local/mysql-docker/data/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=admin@123 -p 3307:3306 mysql:8.4.3

-d 容器以守護進程的方式運行

–name 指定容器的名稱 方便docker start stop ,不用容器ID了太難記

-v 數據卷掛載

-e root的mysql密碼

-p 端口內外部映射

mysql:8.4.3 運行的名字和版本 如果鏡像倉庫沒有自動下載

  1. 進入容器
docker exec -it mysql8.4.3 bash
  1. 登錄mysql
mysql -uroot -p
  1. 編寫配置文件
cd /usr/local/mysql-docker/conf
vim my.cnf

編輯內容如下

[mysqld]port=3306datadir=/var/lib/mysqlmax_allowed_packet=1024Mmax_connections=1000# 默認字符集character-set-server=utf8mb4collation-server=utf8mb4_general_ci# binlog日志server-id=2018log-bin=mysql-bin# 保存15天binlog_expire_logs_seconds=1296000# 選擇 binlog 文件的最大大小,達到該大小時會自動切換到新的日志文件max-binlog-size=100M# 記錄 binlog 文件時排除某些查詢binlog-ignore-db=information_schemabinlog-ignore-db=performance_schemabinlog-ignore-db=mysql

?

2.docker裝nginx

  1. 拉去鏡像
docker pull nginx:1.26.2
  1. 創建掛載目錄
創建掛載目錄
mkdir -p /usr/local/nginx-docker/conf
mkdir -p /usr/local/nginx-docker/conf/conf.d
mkdir -p /usr/local/nginx-docker/log
mkdir -p /usr/local/nginx-docker/html
  1. 生成容器遷移配置文件
#生成容器
docker run --name nginx --restart=always  -p 80:80 -d nginx:1.26.2
#將容器nginx.conf文件復制到宿主機
docker cp nginx:/etc/nginx/nginx.conf /usr/local/nginx-docker/conf/nginx.con
#將容器conf.d文件夾下內容復制到宿主機
docker cp nginx:/etc/nginx/conf.d /usr/local/nginx-docker/conf/conf.d
#將容器中的html文件夾復制到宿主機
docker cp nginx:/usr/share/nginx/html /usr/local/nginx-docker/
創建Nginx容器并運行
#直接執行docker rm nginx或者以容器id方式關閉容器
#找到nginx對應的容器id
docker ps -a
#關閉該容器
docker stop nginx
#刪除該容器
docker rm nginx
#刪除正在運行的nginx容器
docker rm -f nginx
  1. docker 創建nginx容器
docker run \
-p 80:80 \
--name nginx \
-v /usr/local/nginx-docker/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/nginx-docker/conf/conf.d:/etc/nginx/conf.d \
-v /usr/local/nginx-docker/log:/var/log/nginx \
-v /usr/local/nginx-docker/html:/usr/share/nginx/html \
--restart=always \
-d nginx:1.26.2

docker run
-p 80:80
-p 443:443
–name nginx
-v /usr/local/nginx-docker/conf/nginx.conf:/etc/nginx/nginx.conf
-v /usr/local/nginx-docker/conf/conf.d:/etc/nginx/conf.d
-v /usr/local/nginx-docker/log:/var/log/nginx
-v /usr/local/nginx-docker/html:/usr/share/nginx/html
-d nginx:1.26.2

有多少端口就在這里面加就行

命令描述
–name nginx啟動容器的名字
-d后臺運行
-p 80:80映射端口
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf掛載nginx.conf配置文件
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d掛載nginx配置文件
-v /home/nginx/log:/var/log/nginx掛載nginx日志文件
-v /home/nginx/html:/usr/share/nginx/html掛載nginx內容
nginx:latest本地運行的版本
\shell 命令換行

https://download.docker.com/ 下載docker

3.內網docker裝oracle

一、內網裝dorcker
  1. 下載docker源碼
https://download.docker.com/

按需下載

  1. 將下載好的的包上傳到對應服務器

解壓

tar -zxvf docker-26.1.4.tgz

解壓完之后的文件夾是docker

  1. 移動到可執行文件目錄下
mv docker/* /usr/bin/
  1. 配置docker.service
vim /usr/lib/systemd/system/docker.service

將下面的內容填進去

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s[Install]
WantedBy=multi-user.target
  1. 啟動docker服務并開啟自啟動
systemctl daemon-reload
systemctl start docker.service
docker info
systemctl enable docker

如果習慣用容器編排,附帶docker-compose下載地址

https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64

給他可執行的權限

sudo chmod +x /usr/bin/docker-compose

檢查是否成功安裝

docker-compose --version
二、安裝docker-oracle
  1. 上傳docker-oracle鏡像包

  2. 導入鏡像包

docker load -i 鏡像包
  1. 執行docker images 檢查是否存在鏡像 oracle:oracle11g

存在則導入成功

  1. 創建并啟動容器
docker run -itd \--name oracle11g \-p 1521:1521 \-p 5500:5500 \--mount source=oracle_vol,target=/opt/oracle/app/oradata \-e ORACLE_HOME=/opt/oracle/app/product/11.2.0/dbhome_1 \-e ORACLE_SID=ORCL \-e PATH=$ORACLEHOME/bin:PATH \--restart always \yycx/oracle11 掛載的數據有點大 run的時候可能會比較慢,如果只是為了測試搭建,可以不掛載數據持久化

-p 宿主機映射端口:docker端口

–name 容器的名字

–restart=alway 開機自啟動

–mount source=oracle_vol,target=/opt/oracle/app/oradata \ 掛載磁盤實現數據持久化

-e ORACLE_SID=ORCL \ 實例名字用來連接的

#新建docker卷-----docker volume create oracle11g

#查看docker卷-------docker volume ls

#卷路徑-------find / -name oracle11g

這個卷的路徑就是數據持久化存放的位置

  1. 進入容器進行配置
docker exec -it oracle11g bash
  1. 創建軟連接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
#可以全局使用sqlplus
  1. 登錄Oracle的一些初始化操作
su - oracle  切換oraclesqlplus /nolog  啟動sqlplus但不立即登錄數據庫connect /as sysdba  以sysdba去登錄oraclealter user system identified by nomax;  修改system的密碼是nomax
alter user sys identified by nomax;  修改sys 的密碼是nomax 
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;  配置密碼不過期
alter system set processes=1000 scope=spfile;  修改最大連接數是1000

sqlplus /nolog 啟動sqlplus但不立即登錄數據庫

connect /as sysdba 以sysdba去登錄

alter user system identified by nomax; 設置system的密碼是nomax
alter user sys identified by nomax; 設置sys的密碼是nomax

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 配置密碼不過期

  1. 創建用戶并指定表空間,授權
SQL> create user nomax IDENTIFIED BY nomax default tablespace nomax;User created.SQL> grant connect,resource,dba to nomax;Grant succeeded.創建一個nomax的用戶,分配表空間nomax,密碼是nomax,授予他connect,resource,dba的權限

題外話:

conn /as sysdba;
shutdown immediate; --關閉數據庫
startup; --啟動數據庫
show user;

修改密碼的時候會出現:database not open

  1. 提示數據庫沒有打開
輸入:alter datebase open

還有出現:datebase not mountd

  1. 提示數據庫沒有被掛載
輸入:alter database mount;
輸入:alter database open;

這個沒被掛載是因為宿主機和docker 掛載磁盤出現的問題,有可能是權限dockers的oracle沒有權限存放到映射的宿主機目錄,也有可能是操作問題,本來我是直接-v映射的,但是一直出現這個問題,后來索性用了掛載volume卷,解決了。

4. docker裝tomcat

  1. 拉鏡像tomcat
docker pull tomcat:7.0
  1. 創建宿主機映射目錄
mkdir -p /usr/local/docker-tomcat/webapps/
mkdir -p /usr/local/docker-tomcat/conf/
mkdir -p /usr/local/docker-tomcat/logs/
  1. run起來并配置數據持久化映射
docker run -di --name=tomcat -p 8080:8080 -p1521:1521 -v /usr/local/docker-tomcat/webapps/:/usr/local/tomcat/webapps/ -v /usr/local/docker-tomcat/conf/:/usr/local/docker-tomcat/conf/ -v /usr/local/docker-tomcat/logs/:/usr/local/docker-tomcat/logs/ tomcat:7.0

記得把tomcat連接的服務器的映射端口打開

  1. cp容器自帶的文件到掛載磁盤
docker cp tomcat:/usr/local/tomcat/conf/* /usr/local/docker-tomcat/conf/
  1. 進入容器內
docker exec -it tomcat bashcd bin
啟動tomcat

tomcat默認最小安裝webapps下啥也沒有

在tomcat目錄下有一個webapps.dist目錄,這個目錄下有我們所需要的文件,也就是webapps目錄所需要的文件,我們將這個文件中的內容全部拷貝到webapps下。

cp -r webapps.dist/* webapps

五、容器編排技術

1.單機編排

docker鏡像可以通過Dockerfile一鍵創建.
目前問題:? docker容器的管理(啟動,關閉,重啟),需要手動執行,如何管理多個容器.

單機容器編排工具
docker compose

  1. 下載安裝
yum install -y docker-compose

或者

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

官方文檔下載 并放到bin下

給可執行權限

sudo chmod +x /usr/local/bin/docker-compose
  1. 驗證
docker-compose --version
  1. 書寫格式

在這里插入圖片描述

compose.yaml
compose.yml
docker-compose.yaml
docker-compose.yml
默認支持的compose文件名.
services:mysql8.4.3:image: "mysql:8.4.3"environment:- MYSQL_ROOT_PASSWORD=admin@123volumes:- "./data:/var/lib/mysql"- "./conf:/etc/mysql/conf.d"  container_name: mysql8.4.3      ports:                       - "3307:3306"restart: always
  1. 常用基本命令
    1. 啟動服務
docker-compose up -d

-d 是在后臺運行不占用終端

? 2.查看服務狀態

docker-compose ps

? 3.停止服務

docker-compose down

? 4.刪除服務

docker-compose stop 服務名字
docker-compose rm 服務名字

默認不會刪除掛載的數據卷

docker-compose rm -v 服務名

加-v參數可一塊刪除掛載的數據卷

? 5.查看日志

docker-compose logs [service_name]

? 6.重建服務

 修改完yml文件后執行docker-compose up -d [service_name]

六、Dockerfile 學習

什么是Dockerfile

Dockerfile 是一個文本文件,包含了構建 Docker 鏡像的所有指令。

Dockerfile 是一個用來構建鏡像的文本文件,文本內容包含了一條條構建鏡像所需的指令和說明。

通過定義一系列命令和參數,Dockerfile 指導 Docker 構建一個自定義的鏡像。

和commit生成的會變大,然后也沒有dockerfile透明清除,但是commit根據已有的容器生成臨時用比較方便

Dockerfile制定鏡像

  1. 下面以定制一個 nginx 鏡像(構建好的鏡像內會有一個 /usr/share/nginx/html/index.html 文件)

在一個空目錄下,新建一個名為 Dockerfile 文件,并在文件內添加以下內容:

FROM nginx
RUN echo '這是一個本地構建的nginx鏡像' > /usr/share/nginx/html/index.html
  1. FROM 和 RUN 指令的作用

FROM:定制的鏡像都是基于 FROM 的鏡像,這里的 nginx 就是定制需要的基礎鏡像。后續的操作都是基于 nginx。

RUN:用于執行后面跟著的命令行命令。有以下倆種格式:

注意:Dockerfile 的指令每執行一次都會在 docker 上新建一層。所以過多無意義的層,會造成鏡像膨脹過大。例如:

FROM centos
RUN yum -y install wget
RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
RUN tar -xvf redis.tar.gz

以上執行會創建 3 層鏡像。可簡化為以下格式:

FROM centos
RUN yum -y install wget \&& wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \&& tar -xvf redis.tar.gz

&&符號連接

  1. 開始構建鏡像

在 Dockerfile 文件的存放目錄下,執行構建動作。

以下示例,通過目錄下的 Dockerfile 構建一個 nginx:v3(鏡像名稱:鏡像標簽)。

:最后的 . 代表本次執行的上下文路徑,下一節會介紹。

$ docker build -t nginx:v3 .

指令詳解表:

Dockerfile 指令****說明
FROM指定基礎鏡像,用于后續的指令構建。
MAINTAINER指定Dockerfile的作者/維護者。(已棄用,推薦使用LABEL指令)
LABEL添加鏡像的元數據,使用鍵值對的形式。
RUN在構建過程中在鏡像中執行命令。
CMD指定容器創建時的默認命令。(可以被覆蓋)
ENTRYPOINT設置容器創建時的主要命令。(不可被覆蓋)
EXPOSE聲明容器運行時監聽的特定網絡端口。
ENV在容器內部設置環境變量。
ADD將文件、目錄或遠程URL復制到鏡像中。
COPY將文件或目錄復制到鏡像中。
VOLUME為容器創建掛載點或聲明卷。
WORKDIR設置后續指令的工作目錄。
USER指定后續指令的用戶上下文。
ARG定義在構建過程中傳遞給構建器的變量,可使用 “docker build” 命令設置。
ONBUILD當該鏡像被用作另一個構建過程的基礎時,添加觸發器。
STOPSIGNAL設置發送給容器以退出的系統調用信號。

七、Docker命令大全

容器生命周期管理

語法詳細解釋
run起來run命令
開始暫停重啟容器docker start/stop/restart 命令
docker kill 容器/id 強制殺死docker kill 命令
docker rm 容器 刪除容器Docker rm 命令
暫停docker pause/unpause 命令
創建容器但不會運行Docker create 命令
進入容器內部Docker exec 命令
docker rename 當前容器名稱或ID 新容器名稱Docker rename 命令

網絡命令

  • docker network ls: 列出所有網絡。

  • docker network create <network>: 創建一個新的網絡。

  • docker network rm <network>: 刪除指定的網絡。

  • docker network connect <network> <container>: 連接容器到網絡。

  • docker network disconnect <network> <container>: 斷開容器與網絡的連接。

卷命令

  • docker volume ls: 列出所有卷。
  • docker volume create <volume>: 創建一個新的卷。
  • docker volume rm <volume>: 刪除指定的卷。
  • docker volume inspect <volume>: 顯示卷的詳細信息。
    https://www.runoob.com/docker/docker-rm-command.html) |
    | 暫停 | docker pause/unpause 命令 |
    | 創建容器但不會運行 | Docker create 命令 |
    | 進入容器內部 | Docker exec 命令 |
    | docker rename 當前容器名稱或ID 新容器名稱 | Docker rename 命令 |

網絡命令

  • docker network ls: 列出所有網絡。

  • docker network create <network>: 創建一個新的網絡。

  • docker network rm <network>: 刪除指定的網絡。

  • docker network connect <network> <container>: 連接容器到網絡。

  • docker network disconnect <network> <container>: 斷開容器與網絡的連接。

卷命令

  • docker volume ls: 列出所有卷。
  • docker volume create <volume>: 創建一個新的卷。
  • docker volume rm <volume>: 刪除指定的卷。
  • docker volume inspect <volume>: 顯示卷的詳細信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897113.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897113.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897113.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2025-03-04 學習記錄--C/C++-C語言 判斷是否是素數

合抱之木&#xff0c;生于毫末&#xff1b;九層之臺&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; C語言 判斷是否是素數 一、代碼 ?? #include <stdio.h> #include <stdbool.h> // 使用 bool 類型// 判斷是否是…

如何將飛書多維表格與DeepSeek R1結合使用:效率提升的完美搭檔

將飛書的多維表格與DeepSeek R1結合使用&#xff0c;就像為你的數據管理和分析之旅裝上一臺渦輪增壓器。兩者的合作&#xff0c;不僅僅在速度上讓人耳目一新&#xff0c;更是將智能化分析帶入了日常的工作場景。以下是它們如何相輔相成并改變我們工作方式的一些分享。 --- 在…

離散傅里葉變換(Discrete Fourier Transform, DFT)及其在圖像處理中的應用

離散傅里葉變換&#xff08;DFT&#xff09;及其在圖像處理中的應用 什么是離散傅里葉變換&#xff1f; 離散傅里葉變換&#xff08;Discrete Fourier Transform, DFT&#xff09;是一種強大的數學工具&#xff0c;用于將離散信號從時域&#xff08;或空間域&#xff09;轉換…

在 macOS 上使用 CLion 進行 Google Test 單元測試

介紹 Google Test&#xff08;GTest&#xff09;是 Google 開源的 C 單元測試框架&#xff0c;它提供了簡單易用的斷言、測試夾具&#xff08;Fixtures&#xff09;和測試運行機制&#xff0c;使 C 開發者能夠編寫高效的單元測試。 本博客將介紹如何在 macOS 上使用 CLion 配…

Oracle SQL優化實戰要點解析(11)——索引、相關子查詢及NL操作(1)

11.1. 充分利用索引有序特性,避免發生大表上的FTS,以及對中間大數據集的排序。 11.1.1. 適用場景 從一個或多個大表(例如:億行級或TB級數據量)中過濾出全列大數據集(例如:數百萬或千萬行數據),對該大數據集按其中某列進行排序,最終,只取最前面的少部分數據(例如:…

軟考架構師筆記-計算機網絡

1.9 計算機網絡 OSI/RM 七層模型 物理層 二進制傳輸(中繼器、集線器) (typedef) 數據鏈路層 傳送以幀為單位的信息(網橋、交換機、網卡) 網絡層 分組傳輸和路由選擇(三層交換機、路由器)ARP/RARP/IGMP/ICMP/IP 傳輸層 端到端的連接(TCP/UDP)在前向糾錯系統中&#xff0c;當接…

STM32MP157A單片機移植Linux系統使用python鏈接云服務器

思維導圖 需求分析 stm32mp157a單片機上移植Linux操作系統&#xff0c;包括LCD驅動、觸摸驅動、Ethernet/WiFi支持&#xff0c;設備樹信息包括ADC、GPIO、LCD&#xff0c;使用QT上位機在PC端顯示&#xff0c;通過TCP與stm32交互&#xff0c;將ad數據傳輸到PC端和云服務器&…

【MySQL】Can‘t connect to server in ‘localhost‘

【問題】連接MySQL數據庫時報錯&#xff1a; 【原因】沒有啟動MySQL服務 【解決方法】&#x1f447;&#x1f447;&#x1f447; 1.以管理員身份運行PowerShell 2.執行命令&#xff1a;net start MySQL 提示 “MySQL服務已經啟動成功” 就說明成功了&#xff0c;這時再連…

OceanBase-obcp-v3考試資料梳理

集群架構 基本概念 集群: 集群由一個或多個Region組成,Region 由一個或多個Zone組成,Zone由一個或多個OBServer組成,每個OBServer里有若干個partition的Replica。 Region: 對應物理上的一個城市或地域,當OB集群由多個Region組成時, 數據庫的數據和服務能力就具備地域…

Vue 系列之:組件通訊

子組件調用父組件方法 1、直接在子組件中通過 this.$parent.event 來調用父組件的方法 父組件&#xff1a; <template><p><child></child></p> </template> <script>import child from ./child;export default {components: {chi…

ComfyUI簡介

一、ComfyUI 是什么&#xff1f; ComfyUI 是一款基于節點的圖形用戶界面&#xff08;GUI&#xff09;&#xff0c;專為 Stable Diffusion 設計。它通過模塊化節點連接的方式構建復雜的圖像生成工作流&#xff0c;用戶可自由組合加載模型、輸入提示詞、調整采樣器等操作模塊&am…

我的兩個醫學數據分析技術思路

我的兩個醫學數據分析技術思路 從臨床上獲得的或者公共數據庫數據這種屬于觀察性研究&#xff0c;是對臨床診療過程中自然產生的數據進行分析而獲得疾病發生發展的規律等研究成果。再細分&#xff0c;可以分為獨立危險因素鑒定和預測模型構建兩種。 獨立危險因素鑒定是一直以…

【YOLOv12改進trick】StarBlock引入YOLOv12,創新漲點優化,含創新點Python代碼,方便發論文

??改進模塊??:StarBlock ??解決問題??:采用StarBlock將輸入數據映射到一個極高維的非線性特征空間,生成豐富的特征表示,使得模型在處理復雜數據時更加有效。 ??改進優勢??:簡單粗暴的星型乘法漲點卻很明顯 ??適用場景??:目標檢測、語義分割、自然語言處理…

pyside6學習專欄(九):在PySide6中使用PySide6.QtCharts繪制6種不同的圖表的示例代碼

PySide6的QtCharts類支持繪制各種型狀的圖表&#xff0c;如面積區域圖、餅狀圖、折線圖、直方圖、線條曲線圖、離散點圖等&#xff0c;下面的代碼是采用示例數據繪制這6種圖表的示例代碼,并可實現動畫顯示效果&#xff0c;實際使用時參照代碼中示例數據的格式將實際數據替換即可…

《今日AI-人工智能-編程日報》

1. 字節跳動發布AI編程工具Trae國內版 發布背景&#xff1a;字節跳動于2025年3月3日正式推出國內版AI編程工具Trae&#xff0c;這是國內首個AI原生集成開發環境&#xff08;AI IDE&#xff09;&#xff0c;旨在提升開發者的編程效率與智能化體驗。 核心功能&#xff1a; 搭載d…

doris: MySQL

Doris JDBC Catalog 支持通過標準 JDBC 接口連接 MySQL 數據庫。本文檔介紹如何配置 MySQL 數據庫連接。 使用須知? 要連接到 MySQL 數據庫&#xff0c;您需要 MySQL 5.7, 8.0 或更高版本 MySQL 數據庫的 JDBC 驅動程序&#xff0c;您可以從 Maven 倉庫下載最新或指定版本的…

【LangChain】存儲與管理對話歷史

0. 代碼演示 from langchain_community.chat_message_histories import SQLChatMessageHistorydef get_session_history(session_id):# 通過 session_id 區分對話歷史&#xff0c;并存儲在 sqlite 數據庫中return SQLChatMessageHistory(session_id, "sqlite:///memory.d…

從0開始的操作系統手搓教程21:進程子系統的一個核心功能——簡單的進程切換

目錄 具體說說我們的簡單RR調度 處理時鐘中斷處理函數 調度器 schedule switch_to 我們下面&#xff0c;就要開始真正的進程切換了。在那之前&#xff0c;筆者想要說的是——我們實現的進程切換簡單的無法再簡單了——也就是實現一個超級簡單的輪詢調度器。 每一個進程按照…

mysql新手常見問題解決方法總結

1. 安裝與配置問題 1.1 無法安裝MySQL Server MySQL Server安裝失敗是新手常見的問題之一&#xff0c;以下是具體原因及解決方案&#xff1a; 系統要求不滿足&#xff1a;MySQL對操作系統有最低版本要求&#xff0c;如Windows 7 SP1及以上、macOS 10.13及以上。若系統版本過…

數字組合(信息學奧賽一本通-1291)

【題目描述】 有n個正整數&#xff0c;找出其中和為t(t也是正整數)的可能的組合方式。如&#xff1a;n5,5個數分別為1,2,3,4,5&#xff0c;t5&#xff1b;那么可能的組合有514和523和55三種組合方式。 【輸入】 輸入的第一行是兩個正整數n和t&#xff0c;用空格隔開&#xff0c…