容器docker入门学习

这里写目录标题

  • 容器
    • 容器的软件厂商
  • docker
    • docker引擎
  • 虚拟化
    • 虚拟化技术
  • docker安装详解
    • 1、安装检查
    • 2、安装yum相关的工具
    • 3、安装docker-ce软件
    • 4、查看docker版本
    • 5、启动docker服务
    • 6、设置docker开机启动
    • 7、查看有哪些docker容器运行进程
    • 8、查看容器里有哪些镜像
    • 9、下载nginx软件
    • 10、启动一个docker容器的命令
    • 11、启动一个为sc-nginx的容器
    • 12、查看防火墙的设置
    • 13、防火墙nat详解
    • 14、nginx访问测试

容器

轻量级的虚拟机,更加节省资源(cpu、内存、磁盘、带宽等)的虚拟机。
优点:省钱、成本低、速度更加快,扩展性更加强。serverless。

容器的软件厂商

① docker:提供容器技术的软件;
② k8s:kubernetes是容器集群管理软件,可以管理很多台服务器上的docker启动的容器。可以实现容器的分布式管理,综合很多容器的软件。k8s也是一个软件,用来管理多台服务器上的docker容器的。容器集群编排工具。

docker

docker是一个轻量级、可移植的虚拟化技术,通过容器化技术实现应用程序的打包、运输和运行。
docker
在这里插入图片描述

container集装箱一个封闭的空间,里面可以运行我们的程序。
1、集装箱container
集装箱:存放货物的地方
在这里插入图片描述
有隔离作用:靠Linux内核来实现的。一个进程对应一个容器。
2、what a container
a standard unit of software。
1、docker的框架:一个真实的机器里面装一个linux系统,系统里面装docker,docker里面再装容器,每个容器里面装一个服务。
在这里插入图片描述
3、docker和容器的区别
docker都是用来管理容器的一个软件。

docker引擎

Docker引擎是一种开源容器化技术,用于构建和容器化应用程序。Docker引擎充当客户端-服务器应用程序,具有:
① 具有长时间运行的守护进程dockerd的服务器。
② 指定程序可用于与Docker守护程序通信和指示docker守护程序的接口的API。
③ 命令行界面(CLI)客户端泊坞窗。

CLI使用Docker API通过脚本或直接CLI命令来控制Docker守护程序或与Docker守护程序交互。许多其他Docker应用程序使用底层API和CLI。守护程序创建和管理Docker对象,例如镜像、容器、网络和卷。

虚拟化

虚拟化virtualization:模拟出来的,不是物理的,算真的。
容器技术:container,存放东西的地方。容纳别的东西的器皿。
docker,containerd,k8s等。

虚拟化技术

VMware:workstation :入门级的产品
docker:容器技术的经典代表。
CNF 云原生基金会:Google Redhat ibm等:K8S(kubernetes):containerd(容器运行时软件)
docker是容器运行时软件----容器软件
k8s是管理容器运行时的软件(docker、containerd、rki等)—k8s理解为管理docker集群的软件。
k8s是建立再docker上的。
docker和k8s都是使用go语言开发的
只要是与k8s相关的技术都叫云原生相关的技术,容器理解为一个虚拟机,虚拟机是不是运行软件?

docker安装详解

安装具体流程可以参考之前的文章,这里做个大概的安装流程介绍:
docker安装详细教程

1、安装检查

卸载原来安装过的docker,如果没有安装的就不用进行卸载

sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

2、安装yum相关的工具

下载docker-ce.repo文件

yum install -y yum-utils
yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo

下载docker-ce.repo文件做个文件存在/etc/yum.repo.d

3、安装docker-ce软件

container engine:容器引擎
docker是一个容器管理的软件
docker-ce:是服务器端软件 server
docker-ce-cli:是客户端软件 client
docker-compose-plugin

yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

4、查看docker版本

docker --version

[root@sc-master shell]# docker --version
Docker version 20.10.17, build 100c701

5、启动docker服务

systemctl start docker

systemctl start docker

6、设置docker开机启动

systemctl enable docker

systemctl enable docker

1个docker 启动的每一个容器的背后就是一个linux进程

7、查看有哪些docker容器运行进程

docker ps

[root@sc-master shell]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS  

8、查看容器里有哪些镜像

docker images --images 镜像,镜像里面包含了我们需要的软件的代码和基础环境。

[root@sc-master shell]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    feb5d9fea6a5   11 months ago   13.3kB

9、下载nginx软件

docker pull nginx

[root@sc-master shell]# docker images 查看nginx镜像软件
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
nginx         latest    2b7d6430f78d   2 days ago      142MB
hello-world   latest    feb5d9fea6a5   11 months ago   13.3kB

10、启动一个docker容器的命令

docker run
启动一个容器,可以理解为开启一台虚拟机,相当于将nginx放入容器中进行运行,这样就可以限制其他的cpu资源。

11、启动一个为sc-nginx的容器

docker run -d -p 8090:80 --name sc-nginx nginx

[root@sc-master shell]# docker run -d -p 8090:80 --name sc-nginx nginx
1d3e0fdfaf8f971523ce5b539dda1c6c8c609c8e88c29361ed77e2f778e376e0

注解:
-d:在后台运行demo 、daemon守护进程
-p 8090:80 指定端口映射 DNAT:访问本机的8090端口,转发到docker容器的80端口。
–name sc-nginx 指定容器的名字为:sc-nginx
nginx是镜像的名字

12、查看防火墙的设置

iptables -t nat -L

[root@sc-master shell]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  anywhere             anywhere             ADDRTYPE match dst-type LOCAL
DNAT       tcp  --  anywhere             anywhere             tcp dpt:8090 to:172.17.0.2:80

查看容器启动的进程:

[root@sc-master shell]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                   NAMES
1d3e0fdfaf8f   nginx     "/docker-entrypoint.…"   7 minutes ago   Up 7 minutes   0.0.0.0:8090->80/tcp, :::8090->80/tcp   sc-nginx

13、防火墙nat详解

图片理解:使用了nat功能,用户要去访问:
在这里插入图片描述
docker0:是宿主机与其他容器之间进行通信的网关,也就是lan口。

14、nginx访问测试

然后去客户机上能否访问,访问宿主机的8090端口,去浏览器上输入:http://宿主机ip地址:8090/
我的是:http://192.168.2.152:8090/
在这里插入图片描述
如果因为镜像没有访问到的话,可以先关闭防火墙和重启docker服务进行解决,如果重启docker服务的话,可能会导致之前的镜像停止,所以先查看所有的容器,包括停止的,然后再启动已经停止的容器。
1、关闭防火墙:

service firewalld stop

2、重启docker服务

service docker restart 

3、查看所有的容器,包括已经停止的

docker ps -a

4、启动已经停止的容器

docker start sc-nginx

5、再查看是否已经启动成功

docker ps

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

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

相关文章

文献总结:NIPS2023——车路协同自动驾驶感知中的时间对齐(FFNet)

FFNet 一、文献基本信息二、背景介绍三、相关研究1. 以自车为中心的3D目标检测2. 车路协同3D目标检测3. 特征流 四、FFNet网络架构1. 车路协同3D目标检测任务定义2. 特征流网络2.1 特征流生成2.2 压缩、传输与解压缩2.3 车辆传感器数据与基础设施特征流融合 3. 特征流网络训练流…

git 出现 port 443 Connection timed out

梯子正常延迟不算严重,但在使用git push时反复出现 fatal: unable to access https://github.com/irvingwu5/xxxx.git/ Error in the HTTP2 framing layer Failed to connect to github.com port 443 after 136353 ms: Connection timed out 将git的网络配置与梯子…

【2025年4月18日】android studiio最新设置沉浸式状态栏教程

😫【2025年4月18日】搞了一整天,终于完美搞定 Android 沉浸式状态栏(WebView 本地HTML) 最近在做一个个人项目,用 Android 加载本地 HTML 做个小工具。按理说用 WebView 加载页面很简单嘛——结果沉浸式状态栏这个坑…

如何删除 Launchpad 中 Chrome 的图标

有一天突然在 Launchpad 中出现下面的图标,在 Finder 的 Applications 中也没有,不知道如何删除。最终在《How to remove chrome app icons from launchpad?》中找到了答案。中文互联网上并没有搜到相关帖子,遂作记录。 解决办法很简单&am…

PHP8.2.9NTS版本使用composer报错,扩展找不到的问题处理

使用composer install时报错: The openssl extension is required for SSL/TLS protection but is not available. If you can not enable the openssl extension, you can disable this error, at y our own risk, by setting the ‘disable-tls’ option to true.…

一本通 2063:【例1.4】牛吃牧草 1005:地球人口承载力估计

Topic: Ideas: 为什么把这两道题放在一起呢?就是因为这两道题很类似,都是很简单的数学题,只要你会列出数学等式,你就学会这道题了! 下面把计算过程展示给大家 Code: //2025/04/18…

基于用户的协同过滤推荐系统实战项目

文章目录 基于用户的协同过滤推荐系统实战项目1. 推荐系统基础理论1.1 协同过滤概述1.2 基于用户的协同过滤原理1.3 相似度计算方法1.3.1 余弦相似度(Cosine Similarity)1.3.2 皮尔逊相关系数(Pearson Correlation)1.3.3 欧几里得距离(Euclidean Distance)1.3.4 调整余弦相似度…

【SpringBoot】基于Filter实现SQL注入过滤器

最近扫出了一个SQL注入安全漏洞,用户的非法输入可能导致数据泄露、数据篡改甚至系统崩溃,为了有效防范 SQL 注入攻击,除了在代码层面使用参数化查询和预编译语句外,还可以通过实现一个Filter来过滤掉潜在的危险输入。本文将介绍如…

Spring Boot 项目里设置默认国区时区,Jave中Date时区配置

在 Spring Boot 项目里设置国区时区(也就是中国标准时间,即 Asia/Shanghai),可通过以下几种方式实现: 方式一:在application.properties或application.yml里设置 application.properties properties sp…

Python环境中在线训练机器学习模型所遇到的问题及解决方案

我最近开发个智能控制系统,包括实时数据采集、预测、策略优化等功能,最近增加在线学习功能,也就是在线进行模型训练,在线进行模型训练时出现了问题,现象为: 控制台报: cmdstanpy - INFO - Chain [1] start processing所有任务、线程停止,Web服务登录无法访问后台的pyt…

【教程】无视硬件限制强制升级Windows 11

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 1、下载升级工具:https://github.com/builtbybel/Flyby11/releases 2、解压后打开软件: 3、拖入win11.iso或者自动下载&#xf…

麦科信汽车诊断示波器在机车维修领域中的应用实例

麦科信汽车诊断示波器在机车维修领域中的应用实例 “Micsig SATO1004的错误帧统计功能与历史波形存储,让我们在诊断间歇性CAN故障时有了决定性武器。这不仅是工具升级,更是维修理念的革新。” — Ian Coffey, Mototek技术总监(欧洲ECU诊…

【IDEA2020】 解决开发时遇到的一些问题

目录 一、批量更新数据库数据 逐条更新 Db.updateEntitiesBatch() 二、Error running&#xff0c;Command line is too long. Shorten command line 报错场景 报错分析 解决方法 一、批量更新数据库数据 逐条更新 List<UserModel> ums userMapper.selectListBy…

算法01-最小生成树prim算法

最小生成树prim算法 题源&#xff1a;代码随想录卡哥的题 链接&#xff1a;https://kamacoder.com/problempage.php?pid1053 时间&#xff1a;2025-04-18 难度&#xff1a;4⭐ 题目&#xff1a; 1. 题目描述&#xff1a; 在世界的某个区域&#xff0c;有一些分散的神秘岛屿&…

cpolar 内网穿透 实现公网可以访问本机

1、登录网站&#xff0c;升级成专业版&#xff0c;测试的话建议选一个月付费&#xff0c;选择预留 2、保留的TCP地址增加一条记录&#xff0c;描述可以自己取 3、验证&#xff0c;生成一个Authtocken码 4、在安装目录下&#xff0c;打开CMD命令&#xff0c;复制上面的码运行aut…

c#内存泄露的原因和解决办法

内存泄漏的原因 不正确的对象引用&#xff1a;最常见的原因是对象不再需要时未被垃圾回收器回收。例如&#xff0c;如果一个对象被一个不再使用的变量引用&#xff0c;它将不会被垃圾回收。事件订阅者未取消&#xff1a;如果订阅了一个事件但没有在对象不再需要时取消订阅&…

TDengine Restful 接口API

简介 为支持各种不同类型平台的开发&#xff0c;TDengine 提供符合 RESTful 设计标准的 API&#xff0c;即 REST API。为最大程度降低学习成本&#xff0c;不同于其他数据库 REST API 的设计方法&#xff0c;TDengine 直接通过 HTTP POST 请求 BODY 中包含的 SQL 语句来操作数…

【Contiki】Contiki process概述

00. 目录 文章目录 00. 目录01. 进程类型02. 进程结构03. 事件04. 进程调度函数05. 程序实例06. process实现07. 附录 01. 进程类型 进程类型主要有**协同式&#xff08;cooperative&#xff09;和抢占式&#xff08;preemptive&#xff09;**两种。 协同式进程&#xff0c;要…

哪种电脑更稳定?Mac?Windows?还是云电脑? 实测解密

随着科技的发展进步&#xff0c;电脑已成为当下各类群体的必备产品之一&#xff0c;它的妙用有很多&#xff0c;无论是学生党、打工人还是已经退休的人群或都离不开它的存在。然而&#xff0c;电脑虽好却也差异很大、不同品牌、不同系统、不同配置、不同价位的统统都会有区别。…

华为openEuler操作系统全解析:起源、特性与生态对比

华为openEuler操作系统全解析&#xff1a;起源、特性与生态对比 一、起源与发展历程 openEuler&#xff08;欧拉操作系统&#xff09;是华为于2019年开源的Linux发行版&#xff0c;其前身为华为内部研发的服务器操作系统EulerOS。EulerOS自2010年起逐步发展&#xff0c;支持华…