Docker容器(3)單容器管理

一、單容器

1.1概念簡介

Docker三個重要概念:

  • 倉庫(Repository);?
  • 鏡像(Image);?
  • 容器(Container).?*Docker的三個重要概念是倉庫(Repository)、鏡像(Image)和容器(Container)**。具體如下:
  1. ?**鏡像(Image)**:Docker鏡像是創建容器的基礎,它類似于虛擬機的鏡像,是一個只讀的模板,包含了操作系統、軟件運行環境以及用戶應用程序。鏡像是用于創建Docker容器的藍圖,通過版本管理和增量文件系統,Docker提供了一套簡單的機制來創建和更新現有的鏡像。
  2. ?**容器(Container)**:Docker容器是從鏡像創建的應用運行實例。容器可以啟動、開始、停止和刪除,而且它們之間是相互隔離的,互不影響。容器利用了Linux內核的特性來實現應用的運行和隔離,因此相比傳統的虛擬化技術,容器更加輕量級,啟動速度快,資源消耗少。可以把容器看作是由鏡像這個“類”實例化出的一個獨立運行的“對象”。
  3. ?**倉庫(Repository)**:Docker倉庫用來集中存放和管理鏡像文件,類似于代碼倉庫。倉庫分為公共倉庫和私有倉庫。公共倉庫如Docker Hub提供了大量的官方和第三方鏡像供用戶下載使用。私有倉庫則是企業內部用于存儲自己創建的鏡像的地方,通常用于提高鏡像下載的速度和安全性。

1.2底層原理

Docker是一個Client-Server結構的系統,Docker的守護進程運行在主機上。通過Socket從客戶端訪問!
DockerServer接收到Docker-Client的指令,就會執行這個命令!

1.3Docker基本命令?

Docker指令處理單條使?外,還?持賦值、解析變量、嵌套使?.

Docker指令的基本?法?
docker + 命令關鍵字(COMMAND) + 參數?

  • docker pull <image>:從注冊表(如Docker Hub)下載映像。
  • docker build -t <image_name> <path>:從Dockerfile構建映像,其中<path>是包含Dockerfile的目錄。
  • docker image ls:列出本地計算機上可用的所有映像。
  • docker run -d -p <host_port>:<container_port> --name <container_name> <image>:從映像運行容器,將主機端口映射到容器端口。
  • docker container ls:列出所有正在運行的容器。
  • docker container stop <container>:停止正在運行的容器。
  • docker container rm <container>:從本地計算機中刪除已停止的容器。
  • docker image rm <image>:從本地計算機中刪除映像。

-----幫助命令-----

docker version ?# docker版本信息
docker info ? ? # 系統級別的信息,包括鏡像和容器的數量
docker 命令 --help?

docker info

docker info命令用于獲取Docker的系統信息,包括版本、容器數量、存儲驅動、網絡配置等。

以下是一些常見的輸出信息:

  • Containers:?當前運行的容器數量。
  • Images:?當前存在的鏡像數量。
  • Storage Driver:?使用的存儲驅動名稱和版本號。
  • System Time:?系統時間。
  • ID:?Docker守護進程的ID。
  • Logging Driver:?日志驅動程序的名稱和版本號。
  • Cgroup Driver:?Cgroup驅動程序的名稱和版本號。
  • Operating System:?操作系統的名稱和版本號。
  • Kernel Version:?內核版本號。
  • Architecture:?CPU架構(x86_64)。
  • CPUs:?CPU核心數。
  • Total Memory:?總內存大小。
  • Name:?Docker主機名。
  • Labels:?Docker主機標簽。

-----鏡像命令-----

docker search

docker search命令用于在Docker Hub上搜索鏡像。

以下是一些常見的輸出信息:

  • NAME: 鏡像名稱。
  • DESCRIPTION: 鏡像描述。
  • STARs: 該鏡像的收藏數·。
  • IS FOR: 該鏡像適用的平臺。
  • OFFICIAL: 是否為官方鏡像。
  • AUTOMATION: 是否支持自動化構建。
  • LAST UPDATED: 最后更新時間。

docker images

docker images命令用于列出本地主機上的所有Docker鏡像。

以下是一些常見的輸出信息:

  • REPOSITORY: 鏡像倉庫名稱。
  • TAG: 鏡像標簽。
  • IMAGE ID: 鏡像ID。
  • CREATED: 創建時間。
  • SIZE: 鏡像大小。

docker rmi

`docker rmi`命令用于刪除本地的一個或多個Docker鏡像。

以下是一些常見的用法示例:

1. 刪除單個鏡像:
?

docker rmi myimage:latest

2. 同時刪除多個鏡像:
?

docker rmi myimage:latest myrepo/myotherimage:v1.0

3. 強制刪除鏡像(包括正在運行的容器所使用的鏡像):
?

docker rmi -f myimage:latest

4. 刪除所有未使用的鏡像:
?

docker image prune -a

在執行`docker rmi`命令時,需要注意以下幾點:

  • ?如果指定的鏡像正在被容器使用或存在依賴關系,則無法直接刪除。在這種情況下,可以先停止并刪除相關容器,然后再嘗試刪除鏡像。
  • ?使用`-f`選項可以強制刪除鏡像,但這可能會導致數據丟失,因此請謹慎使用。
  • -`docker rmi`命令與`docker rm`命令不同,`docker rm`用于刪除容器,而`docker rmi`用于刪除鏡像。

??docker pull

`docker pull`命令用于從Docker Hub或其他Docker鏡像倉庫下載一個或多個鏡像到本地。

以下是一些常見的用法示例:

1. 下載單個鏡像:
?

docker pull nginx

2. 同時下載多個鏡像:
?

docker pull nginx redis

3. 指定版本號下載鏡像:
?

docker pull nginx:1.19.0

4. 使用標簽(tag)下載鏡像:
?

docker pull nginx:alpine

5. 從私有倉庫下載鏡像:
?

docker pull myregistry.com/myrepo/myimage:latest

6. 在下載過程中顯示進度信息:
?

docker pull --progress nginx

7. 指定下載時的代理服務器:

docker pull --proxy=http://myproxy.com:8080 nginx

-----容器命令-----

docker ps

docker ps命令用于列出當前運行的Docker容器。

以下是一些常見的輸出信息:

  • CONTAINER ID: 容器ID。
  • IMAGE: 鏡像名稱和標簽。
  • COMMAND: 啟動容器時執行的命令。
  • CREATED: 容器創建時間。
  • STATUS: 容器狀態,如“Up”表示正在運行,“Exited”表示已停止。
  • PORTS: 容器暴露的端口號和綁定的主機端口號。
  • NAMES: 容器名稱。

docker ps —no-trunc

`docker ps --no-trunc`命令用于列出所有正在運行的Docker容器,并顯示完整的容器信息。

?docker run

?`docker run`命令用于從Docker鏡像創建并啟動一個新的容器。

以下是一些常見的用法示例:

1. 運行一個基于Ubuntu的容器,并在其中執行bash shell:
?

docker run -it ubuntu bash

2. 運行一個基于Nginx的容器,并將主機的80端口映射到容器的80端口:
?

docker run -d -p 80:80 --name mynginx nginx

3. 運行一個基于Python的容器,并將當前目錄掛載到容器的/app目錄:
?

docker run -v $(pwd):/app python myscript.py

4. 運行一個基于Node.js的容器,并將容器的8080端口映射到主機的8080端口:
?

docker run -d -p 8080:8080 --name mynodejs node myapp.js

在執行`docker run`命令時,需要注意以下幾點:
- `-d`選項表示以后臺模式運行容器。
- `-p`選項用于將主機的端口映射到容器的端口。
- `--name`選項用于指定容器的名稱。
- `-v`選項用于將主機的目錄或文件掛載到容器中。
- `CMD`和`ENTRYPOINT`指令用于指定容器啟動時要執行的命令。

?docker run運行原理

docker start/stop

docker start 容器id ? ? ? ? ? # 啟動容器
docker restart 容器id ? ? ? ? # 重啟容器
docker stop 容器id ? ? ? ? ? ?# 停止當前正在運行的容器
docker kill 容器id ? ? ? ? ? ?# 強制停止當前的容器

退出容器

exit ? ? ? ? ? ?# 直接退出容器并關閉
Ctrl + P + Q ? ?# 容器不關閉退出

后臺啟動容器

# 命令 docker run -d 鏡像名
[root@iZ2zeg4ytp0whqtmxbsqiiZ /]# docker run -d centos
?
# 問題 docker ps, 發現centos停止了
?
# 常見的坑, docker 容器使用后臺運行, 就必須要有一個前臺進程,docker發現沒有應用,就會自動停止
# nginx, 容器啟動后,發現自己沒有提供服務,就會立即停止,就是沒有程序了

總結

每個容器被創建之后,都會分配?個ContainerID作為容器的唯?標識,后續對容器的啟動、停?、修改、刪除等操作,都可以通過這個ID來完成.

?1.4常見單容器命令

查看日志

docker logs -tf --tail number 容器id

?查看容器中進程信息ps

# 命令 docker top 容器id

具體來說:

  • UID: 用戶ID,表示啟動該進程的用戶。
  • PID: 進程ID,是操作系統中唯一標識一個進程的數字。
  • PPID: 父進程ID,即創建當前進程的進程的ID。
  • C: CPU使用率,顯示了進程自創建以來占用CPU的時間。
  • STIME: 進程開始時的系統時間。
  • TTY: 終端類型,? 表示沒有關聯到特定的終端設備。
  • TIME: 進程消耗的CPU時間總和。
  • CMD: 啟動進程的命令行。

查看鏡像的元數據

docker inspect 容器id

?進入當前正在運行的容器

# 我們通常容器使用后臺方式運行的, 需要進入容器,修改一些配置
?
# 命令
docker exec -it 容器id /bin/bash

?從容器中拷貝文件到主機

docker cp 容器id:容器內路徑    目的地主機路徑[root@iZ2zeg4ytp0whqtmxbsqiiZ /]# docker cp 7af535f807e0:/home/Test.java /home

1.5docker run的參數和選項
?

?二、docker-compose介紹

2.1基礎介紹

?個項?的完整環境包括:

  • 應?(app);?
  • 數據庫(MySQL);?
  • 緩存(Redis).?

例如?

docker-compose

?容器編排?具,允許?戶在?個模版(YAML格式)中定義?組相關聯的容器,會根據--link等參數對啟動的優先級進?排序.?

2.2主從架構

讀寫分離實現?式

基于程序實現;?
基于MySQL?帶主從同步機制.

節點說明

binlog?

  • 記錄master節點‘增刪改查’語句;?

relaybinlog?

  • 記錄從master復制過來的SQL語句;?

I/O Thread?

  • ?于與master節點通信,傳輸SQL語句信息;?

SQL Thread?

  • ?于從relaybinlog?件中讀取SQL,并在salve中執?.

2.3binary log相關命令?

?2.4主從同步的作?

1.實時災備;?
2.?于故障切換;?
3.讀寫分離負載均衡;?
4.業務隔離.

主從同步可能引發的問題

1.數據?致性問題;?
2.從庫更新延遲問題.?

MySQL可選的主從架構

三、?Docker鏡像特性

3.1Docker鏡像特性?

  • 容器創建時需要制定鏡像,每個鏡像都有唯?的標示Image ID;?
  • 與Container ID類似,默認都是128位的,可以使?前16位縮略形式;?
  • 也可以使?鏡像名與版本號(TAG)兩部分組成唯?標識,如果忽略TAG,默認使?latest.?

?鏡像的分層?

  • 已有的分層只能讀不能修改;
  • 上層鏡像優先級?于底層鏡像.

3.2Docker鏡像加載原理

3.3Dockerfile?

dockerfile是用來構建dokcer鏡像的文件!命令參數腳本!
Dockerfile由?條?條的指令組成,每條指令都對應Linux下的?條命令. Docker程序將這些Dockerfile指令翻譯成真正的Linux命令. Dockerfile有??書寫的格式和?持的命令,Docker程序解決這些命令間的依賴關系,類似于Makefile. Docker程序讀取Dockerfile,根據指令?成定制的image.?
docker build -t lowyard/jdk-tomcat .

另外一種方法

容器 -> 鏡像?
docker commit ContainerID?
ImageName:ImageTag??

?作在前臺的進程(?少?個)!!!

構建步驟:

1、編寫一個dockerfile文件
2、docker build構建成為一個鏡像
3、docker run運行鏡像
4、docker push發布鏡像(DockerHub、阿里云鏡像倉庫!)

基礎知識:
1、每個保留關鍵字(指令)都是必須是大寫字母
2、執行從上到下順序執行
3、#表示注釋
4、每一個指令都會創建提交一個新的鏡像層,并提交!?

基礎指令

CMD和ENTRYPOINT的區別
追加命令,是直接拼接在我們的ENTRYPOINT命令的后面

?3.3實戰構建cenos

編寫一個dockerfile文件

docker build構建成為一個鏡像

docker build -f mydockerfile-cento-test -t mycentos:0.1 .

?docker run運行鏡像

?3.4實戰構建tomcat

基礎知識TomCat目錄結構說明

#TomCat目錄結構說明:

bin:該目錄存放TomCat二進制可執行文件,常用的有startup.bat和shutdown.bat文件,startup.bat用來啟動Tomcat,shutdown.bat用來停止Tomcat;

conf:TomCat服務器的配置目錄,主要有server.xml(配置服務器信息,如修改端口號,添加虛擬主機等)、tomcat-users.xml(TomCat用戶與角色信息,對TomCat后臺管理)和web.xml(Web項目部署描述符文件);

lib:Tomcat所需的jar包; logs:存放TomCat的日志文件;

temp:存放Tomcat的臨時文件; webapps:存放所部署的Web項目; work:存放Web項目部署運行時生成的文件,如java和class文件; RUNNING.txt:可查看如何配置TomCat環境變量。

1、準備鏡像文件tomcat壓縮包,jdk的壓縮包!

2、編寫dockerfile.文件

FROM centos:7
MAINTAINER yanyu<1994124137@qq.com>ADD jdk-8u201-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.86.tar.gz /usr/local/RUN yum -y install vimENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_201
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarENV CATALINA_HOME /usr/local/apache-tomcat-9.0.86
ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.86
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/binEXPOSE 8080CMD /usr/local/apache-tomcat-9.0.86/bin/startup.sh &tail -F /usr/local/apache-tomcat-9.0.86/logs/catalina.out

?3、構建鏡像

?4.測試運行

docker run -d -p 8088:8080 --name diytomcat -v /home/yanyu/build/tomcat/test:/usr/local/apache-tomcat-9.0.86/webapps/test -v /home/yanyu/build/tomcat/tomcatlogs/:/usr/local/apache-tomcat-9.0.86/logs diytomcat

在Docker中運行一個名為diytomcat的鏡像,并將容器命名為diytomcat。容器的8088端口映射到主機的8088端口。同時將主機上的/home/yanyu/build/tomcat/test目錄掛載到容器中的/usr/local/apache-tomcat-9.0.86/webapps/test目錄,將主機上的/home/yanyu/build/tomcat/tomcatlogs/目錄掛載到容器中的/usr/local/apache-tomcat-9.0.86/logs目錄。

注意防火墻8088端口開啟和8080是tomcat默認端口

  1. 訪問測試

  2. 發布項目(由于做了卷掛載, 我們直接在本地編寫項目就可以發布了)

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"></web-app>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello. xiaofan</title>
</head>
<body>
Hello World!<br/>
<%
System.out.println("-----my test web logs------");
%>
</body>
</html>

發現:項目部署成功, 可以直接訪問ok!

我們以后開發的步驟:需要掌握Dockerfile的編寫! 我們之后的一切都是使用docker進行來發布運行的!

四、容器數據卷

4.1?docker的理解回顧

將應用和環境打包成一個鏡像!

數據?如果數據都在容器中,那么我們容器刪除,數據就會丟失!需求:數據可以持久化

MySQL,容器刪了,刪庫跑路!需求:MySQL數據可以存儲在本地!

容器之間可以有一個數據共享技術!Docker容器中產生的數據,同步到本地!

這就是卷技術,目錄的掛載,將我們容器內的目錄掛載到linux目錄上面!

**總結: **容器的持久化和同步操作!容器間數據也是可以共享的!

4.2?使用數據卷

直接使用命令來掛載 -v

docker run -it -v 主機目錄:容器目錄

實戰:安裝MySQL

1.獲取鏡像

2.運行容器

docker run -d -p 3304:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456b --name diymysql mysql

-d ? ? ?# 后臺運行
-p ? ? ?# 端口隱射
-v ? ? ?# 卷掛載
-e ? ? ?# 環境配置
--name ?# 容器的名字

匿名和具名掛載

匿名掛載

  1. -v 容器內路徑

  2. docker run -d -P --name nginx01 -v /etc/nginx nginx # -P 隨機指定端口

這種情況就是匿名掛載,我們在-v 后面只寫了容器內的路徑,沒有寫容器外的路徑!

查看所有volume的情況

docker volume命令用于管理Docker卷

Docker卷是Docker容器中持久化存儲數據的一種方式,它允許在容器之間共享和重用數據。使用Docker卷,可以將容器內的數據與宿主機進行分離,實現數據的持久化和遷移。

以下是一些常用的docker volume命令:

  • 創建卷:使用docker volume create命令可以創建一個新卷。例如,要創建一個名為myvolume的卷,可以使用以下命令:

    docker volume create myvolume
  • 列出卷:使用docker volume ls命令可以列出所有可用的卷。例如,要列出所有的卷,可以使用以下命令:

    docker volume ls
  • 查看卷信息:使用docker volume inspect命令可以查看指定卷的詳細信息。例如,要查看名為myvolume的卷的信息,可以使用以下命令:

    docker volume inspect myvolume
  • 刪除卷:使用docker volume rm命令可以刪除一個或多個卷。例如,要刪除名為myvolume的卷,可以使用以下命令:

    docker volume rm myvolume
  • 掛載卷到容器:使用docker run命令時,可以通過-v選項將卷掛載到容器中。例如,要將名為myvolume的卷掛載到容器的/data目錄,可以使用以下命令:

    docker run -d --name mycontainer -v myvolume:/data myimage

通過使用docker volume命令,你可以方便地管理Docker卷,并在容器之間共享和重用數據。

具名掛載

所有docker容器內的卷,沒有指定目錄的情況下都是在/var/lib/docker/volumes/xxxxx/_data

我們通過具名掛載可以方便的找到我們的一個卷,大多數情況下使用的是具名掛載

總結

  1. # 如何確定是具名掛載還是匿名掛載,還是指定路徑掛載!

  2. -v 容器內路徑 # 匿名掛載

  3. -v 卷名:容器內路徑 # 具名掛載

  4. -v /主機路徑:容器內路徑 # 指定路徑掛載

拓展

  1. # 通過 -v 容器內容路徑 ro rw 改變讀寫權限

  2. ro readonly # 只讀

  3. rw readwrite # 可讀可寫?

docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx
?
# ro 只要看到ro就說明這個路徑只能通過宿主機來操作,容器內容無法操作

DockerFile容器

數據卷容器

多個mysql同步數據!

--volumes-from

`--volumes-from` 是一個在 Docker 命令中使用的標志,它允許你從一個或多個容器掛載(共享)卷。使用這個標志,你可以讓新的容器訪問其他容器中已經定義的卷,從而重用數據和配置。

以下是 `--volumes-from` 標志的一些典型用途:

1. **創建新容器時掛載現有容器的卷**:
? ?當你運行一個新容器時,可以使用 `--volumes-from` 標志來指定一個或多個現有容器的名字,從而掛載那些容器的卷到新容器中。
? ?
? ?例如,如果你有一個名為 `my_existing_container` 的容器,并且你想創建一個新的容器 `my_new_container` 來共享 `my_existing_container` 的卷,你可以運行以下命令:
? ?

?docker run -d --name my_new_container --volumes-from my_existing_container my_image

? ?這將會啟動 `my_new_container` 并掛載 `my_existing_container` 的所有卷到新容器中。

2. **管理卷的生命周期**:
? ?由于卷是獨立于容器的生命周期的,使用 `--volumes-from` 可以幫助你在容器之間遷移數據,甚至在容器被刪除后保留數據。

3. **實現容器間的數據共享**:
? ?如果你想要在多個容器之間共享數據,而不是通過外部存儲或者網絡,`--volumes-from` 提供了一種方便的機制來實現這一點。

需要注意的是,從 Docker 1.9 開始,`--volumes-from` 的功能被 `--mount` 標志所取代,后者提供了更加靈活和強大的卷掛載選項。因此,對于較新版本的 Docker,建議使用 `--mount` 而不是 `--volumes-from`。

例如,使用 `--mount` 的替代命令可能是這樣的:

docker run -d --name my_new_container \
--mount source=my_existing_container,target=/data,type=volume my_image

在這個命令中,`source` 參數指定了現有容器的名字,`target` 參數指定了在新容器中掛載的路徑,`type` 參數指定了掛載類型為 `volume`。

結論

容器之間配置信息的傳遞, 數據卷容器的聲明周期一直持續到沒有容器使用為止。

但是一旦你持久化到了本地,這個時候,本地的數據是不會刪除的!

五、Docker倉庫

Docker Hub

?1.地址?注冊自己的賬號

2.確定這個賬號可以登錄

3.在我們的服務器上提交自己的鏡像

阿里云鏡像

  1. 登錄阿里云
  2. 找到容器鏡像服務
  3. 創建命名空間

commit鏡像

docker commit 提交容器成為一個新的版本# 命令和git 原理類似
docker commit -m="提交的描述信息" -a="作者" 容器id 目標鏡像名:[TAG]docker commit -a="xiaofan" -m="add webapps app" d798a5946c1f tomcat007:1.0

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

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

相關文章

『NLP學習筆記』圖解Word2vec(The Illustrated Word2vec)

圖解Word2vec(The Illustrated Word2vec) 文章目錄 一. 詞嵌入(word embedding)1.1. 個性嵌入:你是什么樣的人?1.2. 詞嵌入1.3. 類比1.4. 語言模型1.5. 語言模型訓練1.6. 顧及兩頭(上下文)1.7. Skip-gram模型1.8. 重新審視訓練過程1.9. 負例采樣1.10. 基于負例采樣的Skip…

Maven面試題

以下是一些關于Maven的經典面試題以及它們的答案&#xff1a; 1、什么是Maven&#xff1f; Maven是一個項目管理工具&#xff0c;用于構建、管理、發布Java項目。 2、為什么要使用Maven而不是手動管理項目依賴&#xff1f; Maven提供了依賴管理、統一的構建、打包、文檔生…

Linux DKMS

DKMS&#xff08;Dynamic Kernel Module Support&#xff09;是一個框架&#xff0c;用于構建和安裝內核模塊。它允許第三方內核模塊在系統內核升級時自動重新構建和安裝&#xff0c;從而確保這些模塊與新內核版本兼容。 DKMS的工作原理是將內核模塊的源代碼和安裝腳本存儲在一…

Google索引腳本:快速索引你的網站

公眾號&#xff1a;【可樂前端】&#xff0c;每天3分鐘學習一個優秀的開源項目&#xff0c;分享web面試與實戰知識。 每天3分鐘開源 hi&#xff0c;這里是每天3分鐘開源&#xff0c;很高興又跟大家見面了&#xff0c;今天介紹的開源項目簡介如下&#xff1a; 倉庫名&#xff1…

園區停車管理系統的設計與實現

** &#x1f345;點贊收藏關注 → 私信領取本源代碼、數據庫&#x1f345; 本人在Java畢業設計領域有多年的經驗&#xff0c;陸續會更新更多優質的Java實戰項目希望你能有所收獲&#xff0c;少走一些彎路。&#x1f345;關注我不迷路&#x1f345;** 一 、設計說明 1.1 選題…

【前端素材】推薦優質在線通用果蔬商城電商網頁eStore平臺模板(附源碼)

一、需求分析 1、系統定義 通用果蔬網站是指專門提供各類果蔬產品展示和銷售的在線平臺。它將不同種類的新鮮水果、蔬菜、干果、堅果等聚集在一起&#xff0c;為消費者提供方便、快捷的購物渠道。 2、功能需求 通用果蔬網站是指專門提供各類果蔬產品展示和銷售的在線平臺。…

Nginx常用配置--負載均衡服務

可以將 nginx 作為一個非常高效的 HTTP 負載均衡器&#xff0c;將流量分配到多個應用服務器上&#xff0c;并通過 nginx 提高 Web 應用的性能、可擴展性和可靠性。 nginx 可以通過添加一個 upstream&#xff0c;來實現 nginx 的負載均衡功能。 upstream myserver {server 192…

算法D27|回溯算法4| 93.復原IP地址 78.子集 90.子集II

93.復原IP地址 本期本來是很有難度的&#xff0c;不過 大家做完 分割回文串 之后&#xff0c;本題就容易很多了 題目鏈接/文章講解&#xff1a;代碼隨想錄 視頻講解&#xff1a;回溯算法如何分割字符串并判斷是合法IP&#xff1f;| LeetCode&#xff1a;93.復原IP地址_嗶哩嗶…

面試數據庫篇(mysql)- 08事務

原理 事務是一組操作的集合,它是一個不可分割的工作單位,事務會把所有的操作作為一個整體一起向系統提交或撤銷操作請求,即這些操作要么同時成功,要么同時失敗。 ACID是什么?可以詳細說一下嗎? 原子性(Atomicity):事務是不可分割的最小操作單元,要么全部成功,要么全…

添加用戶為root權限,添加到sudo分組中

在Linux系統中&#xff0c;將用戶添加到sudo組是一種常見的方式&#xff0c;使得該用戶能夠執行sudo命令&#xff0c;從而獲得管理員權限。以下是如何將用戶添加到sudo組的步驟&#xff1a; 打開終端。 使用以下命令將用戶添加到sudo組。請將username替換為你想要添加到sudo組…

Redis之一: 簡介及環境安裝搭建

什么是NoSQL? NoSQL&#xff0c;指的是非關系型的數據庫。NoSQL有時也稱作Not Only SQL的縮寫&#xff0c;是對不同于傳統的關系型數據庫的數據庫管理系統的統稱。 NoSQL用于超大規模數據的存儲。&#xff08;例如谷歌或Facebook每天為他們的用戶收集萬億比特的數據&#xf…

USB - OTG

USB OTG (On-The-Go) Definition&#xff08;定義&#xff09;: * USB OTG 可讓平板電腦或智能手機等設備充當主機&#xff0c;允許其他 USB 設備&#xff08;如 USB 閃存驅動器、數碼相機、鼠標或鍵盤&#xff09;連接到它們。 * 它允許設備在主機和外設之間切換角色。例如&am…

基于SSM SpringBoot vue服裝物流管理系統

基于SSM SpringBoot vue服裝物流管理系統 系統功能 首頁 圖片輪播 人個中心 登錄注冊 后臺管理: 登錄注冊 個人中心 貨物信息管理 貨物入庫管理 訂單信息管理 商品出庫管理 快遞追蹤管理 用戶管理 供應商信息管理 盤點信息管理 管理員管理 開發環境和技術 開發語言&#xf…

從入門到精通:Go 實現基于 Token 的登錄流程深度指南

文章目錄 基于 Token 的認證機制Token 的結構示例 實踐多設備登錄登出示例 Token 的安全性與最佳實踐使用 HTTPS設置合適的過期時間使用強加密算法保護 Secret Key刷新 Token監控和日志應對 Token 泄露 實際應用案例用戶登錄流程示例代碼 進階&#xff1a;Token 的高級應用細粒…

如何生成coredump

1、in kernel config : CONFIG_COREDUMPy 2、in android p in bionic/linker/linker_main.cpp disable signal handler&#xff08;comment below code&#xff09; /* #ifdef __ANDROID__ debuggerd_callbacks_t callbacks { .get_abort_message []() { return __libc_share…

github-actions

文章目錄 workflow觸發器action市場contextsecrets 默認環境變量 workflow name: {{workflow name}} run-name: {{workflow runs name}}on: {{觸發器}} #[push]env:{{定義workflow變量}}: valuejobs:{{job name}}:runs-on: {{運行機器}} #ubuntu-latestenv:{{定義job變量}}: v…

小程序開發能力

小程序開發能力 1. 獲取用戶頭像 當小程序需要讓用戶完善個人資料時&#xff0c;我們可以通過微信提供的頭像、昵稱填寫能力快速完善。如圖&#xff1a; 想使用微信提供的頭像填寫能力&#xff0c;需要兩步&#xff1a; 將 button 組件 open-type 的值設置為 chooseAvatar當…

Python實現時間序列分析動態因子模型(DynamicFactor算法)項目實戰

說明&#xff1a;這是一個機器學習實戰項目&#xff08;附帶數據代碼文檔視頻講解&#xff09;&#xff0c;如需數據代碼文檔視頻講解可以直接到文章最后獲取。 1.項目背景 動態因子模型&#xff08;Dynamic Factor Models, DFM&#xff09;是一種統計學和計量經濟學中用于處理…

源碼安裝 HIPIFY 和應用示例,將cuda生態源碼轉化成HIP生態源碼

1&#xff0c;源碼下載 GitHub - ROCm/HIPIFY: HIPIFY: Convert CUDA to Portable C CodeHIPIFY: Convert CUDA to Portable C Code. Contribute to ROCm/HIPIFY development by creating an account on GitHub.https://github.com/ROCm/HIPIFY.git git clone --recursive ht…

springboot230基于Spring Boot在線遠程考試系統的設計與實現

在線遠程考試系統設計與實現 摘 要 信息數據從傳統到當代&#xff0c;是一直在變革當中&#xff0c;突如其來的互聯網讓傳統的信息管理看到了革命性的曙光&#xff0c;因為傳統信息管理從時效性&#xff0c;還是安全性&#xff0c;還是可操作性等各個方面來講&#xff0c;遇到…