一、工作原理

镜像:容器的模板,包括容器运行时所需的数据
容器:运行中的进程,依赖镜像运行,镜像的具现化
镜像你可以把它看成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…