Docker的安装使用以及常见的网络问题

一、什么是Docker

Docker是一种容器化技术,用于快速打包、分发和运行程序。他的核心思想是"一次构建,到处运行",通过将应用及其依赖的环境打包到一个轻量级、可移植的容器中,实现跨平台一致运行。

二、Docker的安装

1.CentOS7.9版本

#添加Docker软件包源
sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
#安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件
sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#启动Docker
sudo systemctl start docker
#设置Docker守护进程在系统启动时自动启动
sudo systemctl enable docker

2.检查Docker是否安装成功

docker -v

docker compose version

3.添加国内镜像加速地址(这段配置是只有在下载失败时添加此配置)(如镜像可以正常下载则不用天添加此配置)

vim /etc/docker/daemon.json

{
"registry-mirrors": [

        "https://tmtvgb0d.mirror.aliyuncs.com",#最好用最稳定的镜像加速地址

        "http://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://tmtvgb0d.mirror.aliyuncs.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.m.daocloud.io",
"https://t4cjkbtd.mirror.aliyuncs.com"

        ]
}
#如镜像加速地址不可用请必应自行查找

#修改完成后操作

systemctl daemon-reload  #重载docker配置

systemctl restart docker   #重启docker

#重启后检查镜像加速地址是否添加成功

docker info #使用该指令后查看Registry Mirrors字样下是否存在刚刚添加的镜像加速地址

三、Docker常用指令

docker篇

#基础指令

docker pull 镜像 #拉取镜像

docker images #查看docker镜像

docker stop 容器 #停止容器运行

docker rm #删除已停止运行的容器

docker rmi #删除未被使用的镜像

docker ps #查看docker中容器的状态

docker ps -a #查看docker中的所有容器状态

docker search   #搜索镜像

docker exec -it 容器名 /bin/bash #进入容器内部

docker run -d --name my-nginx -p 80:80 nginx #运行一个nginx容器

        -d 后台运行

        --name 容器名

        -p 宿主机的80端口映射到容器的80端口

        nginx 是所需要的镜像

#网络层指令

docker info #查看docker的信息

docker network ls #列出docker中所有网络

docker network disconnect 网络名 容器名

docker inspect 容器ID #查看容器的详细信息(ip地址、挂载卷、端口等)

docker inspect 镜像ID #查看创建时间、层信息、环境变量等

docker inspect 网络 #查看网络、Volume、插件等信息

#查看日志

docker logs --tail  -f 容器名 #查看容 器的日志输出

docker logs --since 1h 容器名 #查看容器一个小时内所有的日志输出

#系统维护

docker system df #查看容器镜像占用的磁盘空间

docker system prune #清理docker镜像占用的磁盘空间

docker compose篇

#基础指令

docker compose up -d #后台运行一个容器

        使用前提是当前文件夹下有已经编写好的docker-compose.yaml文件

docker compose down #停止运行docker-compose.yaml文件对应的容器

docker compose exec -it 容器名 /bin/bash #进去容器内部

        该指令执行时当前文件夹下必须有对应的dtocker-compose.yaml文件才行

三、Docker中常见的网络问题

个人建议:这个网络问题对于初学者来说,我觉得不用在意这个也是有一定的好处呢,有什么好处呢,就是后续遇到问题的时候,可以排查网络问题的同时,了解docker内部的网络

场景前提:在阿里云中有一台ECS主机和一个rocketmq实例,并且这两台实例都在一个VPC中,所以这两台实例的内网一定是互通的。

问题解决思路:在某次启动时,出现服务端连接不到rocketmq实例,因为都在同一个VPC下,起初我并没有往网络层想,我排查了阿里云中的AccessKey,并没有发现什么问题,继续排查了rocketmq控制台中的访问控制的智能身份识别,结果没有发现什么异常,随后启动了第二台主机,发现第二台主机,并没有出现这样的问题,这会又想到的一个问题就是可能是Jenkins缓存机制的问题,拉的代码并不是最新的代码,随后把第二台主机的代码运行到第一台主机中,结果一样,还是出现rocketmq连接不上的问题,这会我才意思到应该是网络层的问题

解决方案:使用route -n找到一个系统中存在一个与rocketmq路由表中有一个相同的IP端

                使用docker inspect指令得到docker中的其他服务正在使用该IP段,停止该容器运行

                使用ip link delete直接删除了本机的该IP端后重启服务

后续跟进处理:       

                在daemon.json文件中添加一个默认的IP端

#强制使用100.100IP端
"default-address-pools": [{"base": "100.100.0.0/16","size": 24},{"base": "172.xx.0.0/16","size": 24}
]

        添加此配置后使用systemctl daemon-reload

        重启服务 docker compose down 

                        docker compose up -d

                

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

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

相关文章

C++入门学习

1.命名空间的介绍首先我们看到如下的代码&#xff0c;在C语言中&#xff1a;#include <stdio.h> #include <stdlib.h> int rand 10; // C语言没办法解决类似这样的命名冲突问题&#xff0c;所以C提出了namespace来解决 int main() {printf("%d\n", rand…

解决python错误:playwright._impl._errors.TimeoutError: Timeout 30000ms exceeded.

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page() page.goto(url)page.wait_for_load_state(networkidle) 在Python环境中运行以上代码后报错: page.wait_for_load_…

爬虫逆向之雷池waf

本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的。否则由此产生的一切后果均与作者无关&#xff01; 雷池waf概念 雷池 WAF&#xff08;SafeLine&#xff09;是长亭科技开源的一款 Web 应用防火墙&#xff0c;部署在网站前面&#xff0c;把所有进来的 HTTP/…

23种设计模式解析--行为型

行为型模式&#xff08;协作的艺术&#xff09; 观察者模式 观察者模式详解 模式定义 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为设计模式&#xff0c;用于建立对象间一对多的依赖关系。当一个对象&#xff08;Subject&#xff09;状态变化时&#xff0c;所…

Linux系统之lua 详解

命令简介 lua 是 Lua 语言的解释器&#xff0c;用于加载和执行 Lua 程序&#xff08;包括文本源码和预编译的二进制文件&#xff09;。它支持两种运行模式&#xff1a;批处理模式&#xff08;执行指定脚本文件&#xff09;和交互式模式&#xff08;逐行读取并执行输入的命令&am…

visual studio 无明显错误,但是无法编译成功解决—仙盟创梦IDE

往后面查看rror CS0246: 未能找到类型或命名空间名“SimpleClass”(是否缺少 using 指令或程序集引用?)修复阿雪技术观在科技发展浪潮中&#xff0c;我们不妨积极投身技术共享。不满足于做受益者&#xff0c;更要主动担当贡献者。无论是分享代码、撰写技术博客&#xff0c;还是…

《论文阅读》传统CoT方法和提出的CoT Prompting的区分

论文&#xff1a;Chain-of-Thought Prompting Elicits Reasoning in Large Language Models作者对传统CoT方法和本文提出的CoT Prompting的区分。1. 传统方法的局限性 (1) 基于微调的CoT&#xff08;Rationale-Augmented Training&#xff09; 实现方式&#xff1a;需人工标注大…

Minio 高性能分布式对象存储

1、什么是对象存储? 描述: 对象存储&#xff08;Object Storage&#xff09;是一种存储数据的计算机体系结构&#xff0c;它以对象的形式存储和管理数据。与传统的文件系统和块存储不同&#xff0c;对象存储将数据作为对象存储在分布式的存储集群中&#xff0c;每个对象都有一…

[深度学习] 大模型学习4-RAG技术全景解析

在大语言模型基础知识一文中&#xff0c;检索增强生成&#xff08;Retrieval-Augmented Generation&#xff0c;简称 RAG&#xff09;技术作为构建大语言模型&#xff08;Large Language Model&#xff0c;简称 LLM&#xff09;应用的一种方式已被简要提及&#xff0c;本文将详…

4G/5G无线电单元系统

4G/5G无线电单元系统 ADI公司的核心技术和领域专业知识帮助客户在全球范围内规划、设计、打造更出色的高性能通信系统。 我们的无线电单元(RU)设计平台利用新一代技术来提供高性能解决方案&#xff0c;帮助客户消除设计障碍、缩短产品开发周期&#xff0c;加快产品上市时间。 价…

HarvardX TinyML小笔记1(番外2:神经网络)

1 介绍 图片来自&#xff1a;https://zh.wikipedia.org/zh-cn/%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C 神经网络一直感觉挺神奇的&#xff0c;江湖也说可解释性很差&#xff0c;无论如何还是学学吧。借这次学习哈佛的TinyML&#xff0c;也就顺带弄了。 这里…

计算机网络 第2章通信基础(竟成)

第 2 章 物理层【考纲内容】1.通信基础 (1) 信道、信号、带宽、码元、波特、速率、信源与信宿等基本概念 (2) 奈奎斯特定理与香农定理 (3) 编码与调制 (4) 电路交换、报文交换与分组交换 (5) 数据报与虚电路2.传输介质 (1) 双绞线、同轴电缆、光纤与无线传输介质&#xff1b;(2…

2025-08-09通过授权码的方式给exe程序充值

2025-08-09通过授权码的方式给exe程序充值主要点&#xff1a; 一次性授权机制&#xff1a; 新增 .used_licenses 文件记录所有已使用的授权码 每次激活前检查授权码是否在已使用列表中 激活成功后立即将授权码标记为已使用 时效性验证&#xff1a; 授权码包含过期时间戳&#x…

工具类-高效集合差异计算工具DiffWrapper

集合差异工具类-DiffWrapper 原因 在编辑过程中&#xff0c;肯定会存在对于子表的更新操作&#xff0c;这种更新分为三种&#xff1a; 要加的&#xff0c; 要删的&#xff0c;要更新的&#xff0c;并且传参只有一个modifyVO的, 每一个都写有点过于冗余&#xff0c;故考虑提取一…

SimBA算法实现过程

文章目录添加噪声衡量扰动示例数值总结高级索引变量名代码总体代码添加噪声 操作&#xff1a;将频率扰动通过trans( )转为像素域扰动加到原始图像上&#xff08;trans返回频率域转换为像素域的结果&#xff09; expanded (images_batch[remaining_indices] # 原始图像&…

【面试题】cookie和session 的区别

文章目录一、核心定义与存储位置二、关键区别对比三、典型使用场景四、关联与依赖总结在Web开发中&#xff0c; Cookie和 Session是两种常用的状态管理机制&#xff0c;用于在无状态的HTTP协议中保存用户信息&#xff08;如登录状态、偏好设置等&#xff09;。二者的核心区别体…

【机器学习】算法调参的两种方式:网格搜索(枚举)、随机搜索

文章目录一、网格搜索&#xff1a;穷举式的最优解寻找1、数学推导过程1. 搜索空间的数学结构2. 优化问题的数学性质3. 收敛性分析4. 误差分析2、为什么网格搜索有效&#xff1f;1. 全局最优性保证2. 可重现性与稳定性3. 参数敏感性分析3、适用场景与局限性二、随机搜索&#xf…

免费PDF翻译 离线自建

https://github.com/Byaidu/PDFMathTranslate/blob/main/docs/README_zh-CN.md https://github.com/Byaidu/PDFMathTranslate/releases 方法 针对不同的使用案例&#xff0c;我们提供不同的方法来使用我们的程序&#xff1a;1. UV 安装 安装 Python (3.10 < 版本 < 3.12)…

DeepSeek智能考试系统智能体

一、deepseek-app-1.0 1、系统要求 CentOS 7.9Python 3.8Node.js 16MySQL 8.0 2、部署步骤 运行初始化脚本&#xff1a;./scripts/setup.sh初始化数据库&#xff1a;mysql -u root -p < scripts/init_db.sql启动服务&#xff1a;./scripts/start.sh 3、访问地址 前端&…

4深度学习Pytorch-神经网络--损失函数(sigmoid、Tanh、ReLU、LReLu、softmax)

目录 激活函数 1. Sigmoid 2. Tanh 函数&#xff08;双曲正切&#xff09; 3. ReLU 函数 4. Leaky ReLU (LReLU) 5. Softmax 总结对比表 损失函数选择 激活函数 激活函数是神经网络中每个神经元&#xff08;节点&#xff09;的核心组成部分。它接收上一层所有输入的加权…