容器化部署項目05

一、工作原理

鏡像:容器的模板,包括容器運行時所需的數據
容器:運行中的進程,依賴鏡像運行,鏡像的具現化
鏡像你可以把它看成Python中的類,而容器可以看做是類的實例化對象。
一個類可以有多個對象,同理一個鏡像可以有多個容器

docker引擎是一個c/s結構的應用
Server是一個常駐進程
RESTAPI實現了client和server間的交互協議
CLI實現容器和鏡像的管理,用戶通過命令行對其操作
在這里插入圖片描述
腳本自動安裝

curl -sSL https://get.docker.com/>get-docker.shsh get-docker.sh --mirror Aliyun
docker--version # 查看版本Docker version 20.10.6.build370c289
systemctl enable docker  # 設置開機啟動# 設置鏡像源
vim /etc/docker/daemon.json
{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn","https://registry.docker-cn.com","https://hub-mirror.c.163.com","https://mirror.ccs.tencentyun.com","https://reg-mirror.qiniu.com"]
}
# 重載
systemctl daemon-reload
# 啟動docker
systemctl start docker

卸載docker

sudo yum remove docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

下載指定版本

curl https://releases.rancher.com/install-docker/18.09.sh | sh

二、容器操作

"""
# 從鏡像倉庫拉取鏡像
docker pull 鏡像:Tag
# 刪除鏡像,前提刪除對應容器
docker rmi 鏡像ID或鏡像名
存儲的鏡像目錄:/var/lib/docker/image# 啟動容器:docker run <options> 鏡像:tag commands
-d指定容器運行后臺
-i用于控制臺交互
-t支持終端登錄,通常和-i參數一起使用
-p映射容器端口,用法:-p宿主機端口:容器端口
-v掛載容器存儲卷,用法:-v宿主機路徑:容器路徑
-e設置容器的環境變量用于容器內的應用程序進行相關配置,用法-e環境變量名=變量值
--name=“containername”指定容器的名稱
--rm 退出容器時刪除容器,與--restart沖突
--restart=“always”停止容器時是否自動重啟,與--rm沖突
例:docker run -it -p 3307:3306 -e MYSQL_ROOT_PASSWORD=devops mysql:5.7# 查看容器:docker ps [-qa]
ps是進程狀態的意思,docker ps指的是容器的狀態查詢
-a all查看全部容器,包括沒運行的容器
-q 只查看容器的標識# 停止容器:docker stop 容器id
停止所有容器:
docker stop $(docker ps -qa)# 刪除容器:docker rm 容器id
刪除所有容器:
docker rm $(docker ps -qa)# 查看容器的日志:docker logs -f 容器標識
-f 以滾動的方式查看容器最后幾行
--tail=100# 進入容器內部:docker exec -it 00 bash
exec 執行的意思
-it 交互式運行容器
bash linux操作系統的默認界面shell
"""

三、部署項目

"""
1、復制html目錄:cp -rf software/autotpsite/dist html
創建nginx容器:docker run -itd -p 80:80 --name=mynginx --rm nginx
復制conf文件到容器:docker cp mynginx:/etc/nginx conf
啟動nginx容器:docker run --name mynginx -v "$PWD/html":/usr/share/nginx/html -v "$PWD/conf":/etc/nginx -p 80:80 -itd nginx2、拉取鏡像并運行:docker pull python:3.8
docker run -itd -v /root/software/autotpsite:/opt --name autotpenv python:3.8
進入python容器下載依賴庫:docker exec -it 4f bash
pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple some-package
測試一下:python manage.py runserver
安裝uwsgi:pip install uwsgi -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple some-package
啟動:uwsgi uwsgi.ini或者
創建部署腳本auto_deploy.sh
cd opt/ && pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple --trusted-host mirrors.tuna.tsinghua.edu.cn && pip install uwsgi -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple --trusted-host mirrors.tuna.tsinghua.edu.cn && uwsgi uwsgi.ini && tail -f > /dev/null
tail -f > /dev/null是阻塞進程,不讓sh命令停止
加入8081端口映射,重啟python容器:
docker run -itd -v /root/software/autotpsite:/opt -p 8081:8081 --name autotpenv2 python:3.8 sh /opt/auto_deploy.sh3、修改nginx conf配置文件并重啟nginx:
vim /root/conf/conf.d/default.conf
location /api {proxy_pass  http://8.130.12.186:8081;}查看容器網絡,使用容器IP
docker network ls
docker network inspect bridge
找到沒有映射的容器IP
修改nginx conf配置文件并重啟nginx:
vim /root/conf/conf.d/default.conf
location /api {proxy_pass  http://172.17.0.4:8081;}
docker restart mynginx停止原容器:docker stop autotpenv2
"""

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

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

相關文章

微信小程序 工作日歷 周計劃日報 修改等提報和狀態展示功能,支持h5,Android ,ios,基于uniapp,適配vue2和vue3

Work-calendar 介紹 &#xff08;底部附鏈接&#xff09; 基于uni-calendar做的定制化開發&#xff0c;主要功能為工作日歷展示和提報組件 ? 1.支持周計劃日報狀態展示且可配置 ? 2.支持農歷展示配置&#xff0c;回到當日&#xff0c;月份切換 ? 3.日歷&#xff0c;周報…

openharmony 鴻蒙 下 利用藍牙API(a2dp模塊-高級音頻,ble模塊-低功耗藍牙等)完成對藍牙音響的控制(藍牙廣播)

1.首先是登錄頁面&#xff08;利用webapi 和本地數據存儲完成登陸操作&#xff09; 2.添加設備&#xff08;利用ble.startBLEScan 和 ble.on("BLEDeviceFind", onReceiveEvent);完成藍牙掃描與顯示&#xff09; 3.藍牙ble連接&#xff08;利用ble.createGattClientDe…

17、邏輯回歸與分類評估 - 從連續到離散的智能判斷

學習目標:理解分類問題的本質和評估方法,掌握邏輯回歸的數學原理和概率解釋,學會二分類和多分類問題的處理方法,熟練使用分類評估指標,理解過擬合和正則化的基本概念。 > 從第16章到第17章:從預測數值到判斷類別 在第16章中,我們學習了線性回歸,解決的是預測連續數…

自動化腳本的核心引擎

自動化腳本作為現代軟件開發與運維的重要工具&#xff0c;其核心引擎承擔著解析指令、調度任務和執行邏輯的關鍵職能。這種引擎本質上是一個輕量級的運行時環境&#xff0c;通過預定義的規則集將人類可讀的腳本語言轉化為機器可執行的原子操作。在持續集成/持續交付&#xff08…

【Vue2 ?】Vue2 入門之旅 · 進階篇(九):Vue2 性能優化

在前幾篇文章中&#xff0c;我們學習了 Vuex 的內部機制以及 Vue Router 的工作原理。本篇將深入探討 Vue2 性能優化&#xff0c;幫助你掌握在開發中提升 Vue 應用性能的方法和技巧。 目錄 性能優化的意義響應式系統優化虛擬 DOM 與渲染優化組件懶加載與按需渲染事件與計算屬性…

【題解】B2600 【深基1.例2】簡單的分蘋果

題目描述 這里有 101010 個蘋果&#xff0c;小 A 拿走了 222 個&#xff0c;Uim 拿走了 444 個&#xff0c;八尾勇拿走剩下的所有的蘋果。我們想知道&#xff1a; 小A 和 Uim 兩個人一共拿走多少蘋果&#xff1f;八尾勇能拿走多少蘋果&#xff1f; 現在需要編寫一個程序&#x…

中小企業 4G 專網部署:性能與成本的最佳平衡

在數字化轉型的浪潮中&#xff0c;中小企業同樣需要安全、穩定和高效的通信網絡。然而&#xff0c;傳統專網的高成本和復雜部署往往成為阻礙。IPLOOK 提供的4G輕量級核心網與專網解決方案&#xff0c;正是幫助中小企業在性能與成本之間找到最佳平衡的關鍵。 中小企業的網絡挑…

LeetCode每日一題,20250914

元音拼寫檢查器 思路 精確匹配 用 HashSet 保存原始單詞&#xff0c;查詢時直接判斷是否存在。 大小寫忽略匹配 用 HashMap<String, String> 保存 小寫單詞 -> 第一次出現的原始單詞。用 putIfAbsent&#xff0c;確保只記錄第一次出現的單詞。 元音模糊匹配 把單詞…

i2s_record_play

這章主要講述i2s 1&#xff1a;環境及配件 esp32c3 esp32s3 idf5.4.1 INMP441 MAX98357A 都使用dma 2&#xff1a;eps32c3 測試 只有1個i2s 只能一邊錄 完 再播放 &#xff0c;內存太小&#xff0c;這里用 flash 存audio里 只說能 錄音 能播放 &#xff0c;效果不好&#xff0…

Spring Boot 3 + EasyExcel 文件導入導出實現

SpringBoot集成EasyExcel 3.x&#xff1a;高效實現Excel數據的優雅導入與導出 在現代企業應用中&#xff0c;Excel作為數據交換的重要工具&#xff0c;幾乎無處不在。如何高效且優雅地實現Excel數據的導入與導出&#xff0c;是每個開發者都需要面對的問題。EasyExcel是阿里巴巴…

Ruby編程實踐:20個實用練習

1、編寫一個程序,計算一年有多少小時。 以下是兩種實現方式的代碼: 方式一: puts 24*365方式二: puts 24*365 puts "(or #{24*366} on a leap year)"2、編寫一個程序,計算十年中有多少分鐘。 以下兩種實現方式: 簡單計算(未考慮閏年數量差異): ru…

邏輯回歸(二):從原理到實戰 - 訓練、評估與應用指南

引言&#xff1a; 上期我們講了什么是邏輯回歸&#xff0c;了解了它如何利用Sigmoid函數將線性回歸的輸出轉化為概率&#xff0c;并通過最大似然估計來尋找最佳參數。今天&#xff0c;我們將繼續這段旅程&#xff0c;學習如何訓練這個 模型、如何評估它的表現&#xff0c;以及如…

9.8C++作業

思維導圖#include <iostream> #include <vector> #include <fstream> using namespace std;class Stu {friend ofstream &operator<<(ofstream &ofs,const Stu &stu); private:string name;string id;int age;double score; public:Stu(){…

Linux內存管理章節十六:非均勻的內存訪問:深入Linux NUMA架構內存管理

引言 在傳統的SMP&#xff08;對稱多處理&#xff09;系統中&#xff0c;所有CPU核心通過一條共享總線訪問同一塊內存&#xff0c;所有內存訪問延遲是均勻的&#xff08;UMA&#xff09;。然而&#xff0c;隨著CPU核心數量的增加&#xff0c;共享總線成為了巨大的性能和 scalab…

【論文翻譯】Seg-Zero: Reasoning-Chain Guided Segmentation via Cognitive Reinforcement

0. 摘要Traditional methods for reasoning segmentation rely on supervised fine-tuning with categorical labels and simple descriptions, limiting its out-of-domain generalization and lacking explicit reasoning processes. To address these limitations, we propo…

Playwright MCP瀏覽器自動化教程

你是否曾厭倦在編程軟件和瀏覽器之間反復切換&#xff0c;只為了檢查AI生成的代碼能否正常運行&#xff1f;現在&#xff0c;有了Playwright MCP&#xff08;Model Context Protocol&#xff09;&#xff0c;你可以直接讓AI自己操作瀏覽器&#xff0c;查看自己寫的代碼運行效果…

矩陣中遍歷某個點周圍的九個點

又是學習新知識的一天,以下為Java版本部分關鍵代碼int[] neighbors {0, 1, -1};int rows board.length;int cols board[0].length;int[][] copyBoard new int[rows][cols];for (int row 0; row < rows; row) {for (int col 0; col < cols; col) {int liveNeighbors…

單例模式:只有一個對象

目錄 什么是單例模式 能解決什么問題 使用場景 如何實現 __new__ 方法&#xff1a;經典又直接 裝飾器&#xff1a;不改類本身&#xff0c;也能單例 模塊本身就是單例 注意事項 總結 你有沒有過這樣的困擾&#xff1a; “為什么我明明只創建了一次數據庫連接&#xff0…

AI大模型學習(6)Yolo V8神經網絡的基礎應用

Yolo V8神經網絡的基礎應用2024-2025年最火的目標檢測神器&#xff0c;一篇文章讓你徹底搞懂&#xff01;&#x1f929;大家好呀&#xff01;今天我們要聊一聊計算機視覺領域的「明星模型」——YOLO神經網絡&#xff01;&#x1f3af; 如果你對「目標檢測」這個詞還比較陌生&am…

C++:imagehlp庫

imagehlp庫1. 簡介2. 主要函數與用途2.1PE 文件解析相關2.2 符號處理相關2.3 崩潰轉儲相關2.4 版本資源相關3. 使用示例3.1 解析內存地址對應的函數名和行號3.2 創建目錄使用示例1. 簡介 imagehlp 是 Windows 系統提供的一個圖像處理與調試輔助 API 庫&#xff08;Image Helpe…