docker的部署与安装以及部署一个docker(容器)应用及docker容器常出现的问题

news2024/9/20 5:28:34

        docker 架构图

        

一、docker的部署与安装

1、在 CentOS 上安装 Docker

移除旧版本(如果有的话):
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

2、安装依栏包

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

3、添加 Docker CE 仓库

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4、安装 Docker CE

sudo yum install docker-ce

5、启动 Docker 服务

sudo systemctl start docker

6、设置 Docker 服务开机自启

sudo systemctl enable docker

7、验证安装

sudo docker run hello-world

二、在docker上部署应用以及docker的使用

1. 准备 Docker 环境

确保你已经安装了 Docker。可以通过运行 docker --version 来检查是否安装并启动了 Docker 服务。

2. 构建或获取 Docker 镜像

如果你的应用程序已经是一个 Docker 镜像,你可以直接从 Docker Hub 或其他容器镜像仓库获取它。否则,你需要创建一个 Dockerfile 来构建你的镜像。

创建 Dockerfile

在应用程序的根目录下创建一个名为 Dockerfile 的文件,它定义了如何构建你的 Docker 镜像。例如:

# 使用官方 Python 运行时作为父镜像 FROM python:3.8-slim # 将工作目录设置为 /app WORKDIR /app # 将当前目录内容复制到位于 /app 的容器中 COPY . /app # 安装 requirements.txt 中指定的任何所需包 RUN pip install --trusted-host pypi.python.org -r requirements.txt # 使端口 80 可供此容器外的环境使用 EXPOSE 80 # 定义环境变量 ENV NAME World # 在容器启动时运行 app.py CMD ["python", "app.py"]

构建镜像

docker build -t your-app-name .

3. 运行 Docker 容器

使用以下命令来基于你的 Docker 镜像运行一个容器:

docker run -d -p 4000:80 your-app-name

这里 -d 标志代表后台运行,-p 标志将宿主机的 4000 端口映射到容器的 80 端口。

4. 访问应用

如果你的应用程序是一个 web 应用,你可以通过浏览器访问它。如果端口映射到了宿主机的端口,你可以通过 http://localhost:4000 来访问应用

5. 管理 Docker 容器

你可以使用以下命令来管理你的 Docker 容器:

  • 查看运行中的容器:docker ps
  • 查看所有容器(包括停止的):docker ps -a
  • 停止容器:docker stop <container-id或name>
  • 启动容器:docker start <container-id或name>
  • 删除容器:docker rm <container-id或name>

6. 监控和日志

你可以使用以下命令来监控容器的日志和资源使用情况:

  • 查看日志:docker logs <container-id或name>
  • 实时监控日志:docker logs -f <container-id或name>
  • 查看资源使用情况:docker stats <container-id或name>

7. 存储和数据持久化

如果你需要持久化数据或存储状态,你可以使用 Docker 卷或绑定挂载来实现。

使用 Docker 卷

docker run -d -p 4000:80 --name my-container -v /path/to/volume your-app-name

使用绑定挂载

docker run -d -p 4000:80 --name my-container your-app-name /path/to/app:/app

三、docker容器常出现的问题

1、启动失败:容器启动失败可能是由于镜像下载失败、容器依赖问题、资源不足(如CPU、内存、存储空间)、端口冲突、系统限制(如ulimit设置)等原因。

2、容器无法连接网络:这可能是由于网络配置错误,如网络模式不正确,或者容器内的网络设置有问题。

3、容器内部进程退出:如果容器内的主要进程退出,Docker会停止容器。这通常是因为进程收到了信号,如终端窗口关闭,或者是因为容器配置的问题,如环境变量设置不当。

4、** images 文件损坏**:下载的镜像文件可能因为网络问题或镜像源不稳定而损坏,导致无法正确加载。

5、存储空间不足:Docker容器会在宿主机的文件系统中创建一层存储空间,如果宿主机的空间不足,可能会导致问题。

6、性能问题:Docker容器在运行时可能会受到宿主机资源的限制,如CPU和内存限制过低,或者容器间资源争用。

7、安全问题:如果不当心,容器可能会暴露敏感数据,或者因为未更新的镜像而受到安全漏洞的威胁。

8、容器之间通信困难:即使是在同一台宿主机上的容器,如果网络配置不当,也可能导致容器间通信困难。

9、日志管理困难:Docker容器可能会产生大量的日志,管理这些日志,尤其是定位问题日志,可能是一个挑战。

10、状态持久化困难:由于容器设计为无状态,对于需要状态持久化的应用,需要额外的考虑和配置。

当遇到问题时,可以通过以下步骤进行排查和解决:

(1)查看日志:使用docker logs [container_id]查看容器日志。

(2)查看状态:使用docker ps查看容器状态。

(3)查看资源使用情况:使用docker stats查看容器的资源使用情况。

(4)检查网络配置:使用docker network命令检查网络配置。

(5)查看Docker配置:检查/etc/docker/目录下的配置文件。

(6)使用Docker命令行工具:Docker提供了丰富的命令行工具帮助管理和调试容器。

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

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

相关文章

用vscode调试cpp程序相关操作记录

需要在服务器上用vscode调试cpp程序&#xff0c;写此记录launch.json配置和相关步骤错误导致的问题 1.在需要运行程序的服务器上安装C/C Extension Pack&#xff08;之前只在本地装了&#xff09;&#xff0c;可以支持调试C/C应用程序(设置断点&#xff0c;单步执行&#xff0c…

爱帮供应链邀您参观2024杭州快递物流供应链与技术装备展览会

2024年7月8-10日 | 杭州国际博览中心 同期举办&#xff1a;2024中国数字物流技术与应用展 2024国际电商物流包装产业展 2024新能源商用车、物流车展 展会介绍 本届展会致力于全面展示快递物流上下游领域的创新解决方案&#xff0c;涵盖快递物流供应链、智能装备、AGV机器人…

正信晟锦:多年不联系的好友借钱怎么办

多年不见的老友突然出现&#xff0c;带着迫切的求助信息——借钱。面对这样的请求&#xff0c;我们该如何应对? 当一个多年未联络的朋友突然出现请求借款时&#xff0c;这确实是一个棘手的问题。一方面&#xff0c;我们可能对旧日友情存有怀念与不舍;另一方面&#xff0c;时间…

Windows10安装SSH

Linux运维工具-ywtool 目录 1. 打开设置2. 应用3.管理可选功能4.添加功能5.安装OpenSSH服务器6.测试是否安装成功 1. 打开设置 windows桌面按下"win l"键调出"设置"2. 应用 点击"应用"3.管理可选功能 点击"管理可选功能"4.添加功能…

【系统架构师】-计算机网络

1、网络的划分 网络性能指标&#xff1a;速率、带宽(频带宽度或传送线路速率)、吞吐量、时延、往返时间、利用率。 网络非性能指标&#xff1a;费用、质量、标准化、可靠性、可扩展性、可升级性、易管理性和可维护性。 总线型(利用率低、干扰大、价格低)、 星型(交换机转发形…

【笔记】以论文发表形式通俗理解 TCP/IP模型

【笔记】以论文发表形式通俗理解 TCP/IP模型 前言TCP/IP模型理论通俗理解 前言 在网络基础学习过程中&#xff0c;以前只对TCP/IP理解个字面&#xff0c;网上查一下能知道个字面意思&#xff0c;但是连起来到底是什么意思&#xff0c;还是一知半解的&#xff0c;停留在表面&am…

阿里云4核8G服务器多少钱一年?

阿里云4核8G服务器优惠价格955元一年&#xff0c;配置为ECS通用算力型u1实例&#xff08;ecs.u1-c1m2.xlarge&#xff09;4核8G配置、1M到3M带宽可选、ESSD Entry系统盘20G到40G可选&#xff0c;CPU采用Intel(R) Xeon(R) Platinum处理器&#xff0c;阿里云活动链接 aliyunfuwuq…

document.documentElement.clientHeight与document.body.clientHeight的区别

网页可见区域高&#xff1a;document.body.clientHeight 网页正文全文高&#xff1a;document.body.scrollHeight clientHeight&#xff1a; 表示可视区域高度&#xff0c; 包括padding但不包括border、水平滚动条、margin的元素的高度 offsetHeight&#xff1a;表示可视区域高…

Jackson 2.x 系列【1】概述

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 源码地址&#xff1a;https://gitee.com/pearl-organization/study-seata-demo 文章目录 1. 前言2. 什么是 JSON3. 常用 Java JSON 库4. Jackson4.1 简介4.2 套件4.3 模块4.…

RIPGeo代码理解(五)utils.py( 辅助函数)第一部分

​ 代码链接:RIPGeo代码实现 ├── lib # 包含模型(model)实现文件 │ |── layers.py # 注意力机制的代码。 │ |── model.py # TrustGeo的核心源代码。 │ |── sublayers.py # layer.py的支持文件。 │ |── utils.p…

【MySQL】2.MySQL数据库的基本操作

目录 数据库基本操作 查看数据库信息 查看数据库结构 显示数据表的结构&#xff08;字段&#xff09; 常用的数据类型 数据库管理操作 SQL语句概述 SQL分类 1.DDL&#xff1a;数据定义语言 1.1创建数据库和表 创建数据库 创建数据表 1.2删除数据库和表 删除数据表…

2024年【化工自动化控制仪表】考试试卷及化工自动化控制仪表模拟考试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 化工自动化控制仪表考试试卷是安全生产模拟考试一点通总题库中生成的一套化工自动化控制仪表模拟考试题&#xff0c;安全生产模拟考试一点通上化工自动化控制仪表作业手机同步练习。2024年【化工自动化控制仪表】考试…

langchain+chatglm3+BGE+Faiss Linux环境安装依赖

前言 本篇默认读者已经看过之前windows版本&#xff0c;代码就不赘述&#xff0c;本次讲述是linux环境配置 超短代码实现&#xff01;&#xff01;基于langchainchatglm3BGEFaiss创建拥有自己知识库的大语言模型(准智能体)本人python版本3.11.0&#xff08;windows环境篇&…

基于Gabor滤波器的指纹图像识别,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

索尼下一代游戏主机PS5将于11月20日发售

索尼下一代游戏机PS5将于2020年11月20日发布。据悉&#xff0c;这款游戏机的售价可能会达到499美元&#xff08;约合人民币3500元&#xff09;。 我们知道游戏主机的价格低于游戏PC的价格。 既然PS5的主要硬件配置已经公开&#xff0c;那么现在配置一台同样配置的游戏PC需要多少…

从零开始学Spring Boot系列-集成Kafka

Kafka简介 Apache Kafka是一个开源的分布式流处理平台&#xff0c;由LinkedIn公司开发和维护&#xff0c;后来捐赠给了Apache软件基金会。Kafka主要用于构建实时数据管道和流应用。它类似于一个分布式、高吞吐量的发布-订阅消息系统&#xff0c;可以处理消费者网站的所有动作流…

全流程ArcGIS Pro技术应用

GIS是利用电子计算机及其外部设备&#xff0c;采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲&#xff0c;它是在一定的地域内&#xff0c;将地理空间信息和 一些与该地域地理信息相关的属性信息结合起来&#xff0c;达到对地理和属性信息的综合管理。GIS的…

探索AI+电商领域应用与发展

AI火的已经一塌糊涂了&#xff0c;已经有很大一部分的企业和个人已经坐上了这趟超音速列车&#xff0c;但对于电商领域具体都有哪些助理&#xff0c;目前为止还是比较散&#xff0c;今天来顺一下AIGC之与电商到底带来了些什么&#xff1f; 一、什么是AIGC AIGC是内容生产方式…

【LeetCode-74.搜索二维矩阵】

题目详情&#xff1a; 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&am…

微服务day05(中) -- ES索引库操作

索引库就类似数据库表&#xff0c;mapping映射就类似表的结构。 我们要向es中存储数据&#xff0c;必须先创建“库”和“表”。 2.1.mapping映射属性 mapping是对索引库中文档的约束&#xff0c;常见的mapping属性包括&#xff1a; type&#xff1a;字段数据类型&#xff0c;…