Docker-03-HelloWorld

简介: Docker-03-HelloWorld

我相信你肯定知道 helloworld,其在所有编程语言中都是最经典的入门示例。当然 Docker 也不例外。


启动 helloworld 容器


启动容器使用 docker run 命令,具体用法 docker run --help 可以查看。


Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...
复制代码


启动 hello-world


网络异常,图片无法展示
|


分析


首先,执行 docker run hello-world就可以启动 hell-world 容器,但是因为我们本地没有 hello-world 的镜像,所以 docker 自动从远端仓库进行搜索下载了 hello-world 镜像。


网络异常,图片无法展示
|


查看拉取下来的 hello-world 镜像


root@phyger-VirtualBox:/home/phyger# docker images | grep hello
hello-world         latest              bf756fb1ae65        5 months ago        13.3kB
root@phyger-VirtualBox:/home/phyger#
复制代码


我们发现这个镜像只有 13.3kB,特别小,但是它是一个完整的 Docker 容器镜像。

然后,Docker 使用 hello-world 镜像启动了 hello-world 容器,并且打印出了 Hello from Docker!


Hello from Docker!
This message shows that your installation appears to be working correctly
复制代码


最后容器运行结束,打印出了容器的整个启动过程。


网络异常,图片无法展示
|


查看运行结束的容器:


root@phyger-VirtualBox:/home/phyger# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
c3d23ead2fc6        hello-world         "/hello"            6 seconds ago       Exited (0) 4 seconds ago                       sharp_sinoussi
root@phyger-VirtualBox:/home/phyger#
复制代码


为什么这个容器运行完之后的状态是 Exited 呢?下篇继续~


容器运行原理图


网络异常,图片无法展示
|


containerd 的安装使用

安装

下载包


wget https://github.com/containerd/containerd/releases/download/v1.5.7/cri-containerd-cni-1.5.7-linux-amd64.tar.gz
tar -zxvf cri-containerd-cni-1.5.7-linux-amd64.tar.gz
复制代码


删除不必要的文件


rm -rf etc/cni
rm -rf opt
复制代码


启动 containerd


ystemctl status containerd
systemctl enable containerd
systemctl restart containerd
复制代码


生成默认配置文件


containerd config  default > /etc/containerd/config.toml
修改配置文件:oom_score = -999
复制代码


启动 HelloWorld 容器


由于 containerd 默认不会从 docker 的仓库拉取镜像,所以我们指定源来进行操作。


ctr i pull docker.io/library/hello-world:latest
ctr run -d -t docker.io/library/hello-world:latest
复制代码


查看启动的 hello-world 容器:


ctr c ls


更多命令使用ctr --help查看。

相关文章
|
域名解析 网络协议 关系型数据库
tcp和udp的区别是什么
TCP和UDP是互联网协议中的传输层协议。TCP是面向连接的,通过三次握手建立可靠连接,提供数据顺序和可靠性保证,适用于HTTP、FTP等需要保证数据完整性的应用。UDP则是无连接的,数据报独立发送,传输速度快但不保证可靠性,常用于实时通信、流媒体和DNS解析等对速度要求高的场景。根据应用需求选择合适的协议至关重要。
tcp和udp的区别是什么
|
传感器 人工智能 监控
Uni-app智慧工地数据大屏可视化监管平台源码带APP
智慧工地的核心是数字化,它通过传感器、监控设备、智能终端等技术手段,实现对工地各个环节的实时数据采集和传输,如环境温度、湿度、噪音等数据信息,将数据汇集到云端进行处理和分析,生成各种报表、图表和预警信息,帮助管理人员了解工地的实时状况,及时做出决策和调整,
1028 0
|
存储 SQL 数据库
面试题20: 存储过程和函数的区别
面试题20: 存储过程和函数的区别
1153 0
|
Ubuntu Shell 开发者
helloworld 镜像 | 学习笔记
快速学习 helloworld 镜像
helloworld 镜像 | 学习笔记
|
Java Linux C语言
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
1114 90
|
Linux
Red Hat下载ISO镜像的方法
Red Hat 是一家全球领先的开源技术解决方案提供商,总部位于美国北卡罗来纳州罗利。该公司成立于1993年,其主要产品是 Red Hat Enterprise Linux (RHEL) 操作系统。Red Hat 还提供其他产品和解决方案,如 OpenShift、Virtualization、Ansible 等,用于企业级应用的开发、部署和管理。Red Hat 的产品和服务广泛应用于各个行业的企业,其开源背景和社区合作模式使其成为许多企业的首选技术合作伙伴。
3664 1
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
13830 4
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
|
Docker 容器
docker设置国内镜像源
docker设置国内镜像源
48292 5
|
消息中间件 Linux 开发者
Linux进程间通信秘籍:管道、消息队列、信号量,一文让你彻底解锁!
【8月更文挑战第25天】本文概述了Linux系统中常用的五种进程间通信(IPC)模式:管道、消息队列、信号量、共享内存与套接字。通过示例代码展示了每种模式的应用场景。了解这些IPC机制及其特点有助于开发者根据具体需求选择合适的通信方式,促进多进程间的高效协作。
735 3
vue3学习记录(1)
随着vue3的普及我们团队开始全面接纳了vue3。
1202 154