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查看。

相关文章
|
Docker 容器
【Docker系列】docker-compose文件如何传递参数
【代码】【Docker】docker-compose文件如何传递参数。
1201 0
【Docker系列】docker-compose文件如何传递参数
|
3月前
|
Docker 容器
docker run
【9月更文挑战第08天】
177 1
|
4月前
|
JSON Shell 数据格式
在Docker中,docker run cmd entrypoint 有什么区别?
在Docker中,docker run cmd entrypoint 有什么区别?
|
7月前
|
前端开发 应用服务中间件 数据库
Docker-docker-compose学习笔记(yaml,实战)
Docker-docker-compose学习笔记(yaml,实战)
678 0
|
7月前
|
Docker 容器
docker build -t和docker build -f区别
参数用于指定要使用的Dockerfile的路径,允许你在不同的位置使用不同的Dockerfile来构建镜像。
127 0
|
7月前
|
关系型数据库 MySQL Java
Docker Dockerfile 使用方法
Dockerfile 介绍 当使用Docker构建容器化应用程序时,Dockerfile是一个用于定义容器镜像的文本文件。它包含了一系列指令,告诉Docker如何从基础镜像(通常是官方或自定义的操作系统镜像)构建出最终的镜像,以及如何配置容器中的环境、文件和应用程序。 Dockerfile 的编写是构建容器的基础,它允许您定义容器的构建步骤、环境和配置。通过合理使用各种指令,您可以构建出一个满足应用程序需求的定制化镜像,从而实现应用的容器化部署。
117 3
|
Ubuntu 网络协议 Shell
|
存储 缓存 开发工具
42-Docker-Docker命令详解-docker build
42-Docker-Docker命令详解-docker build
|
JSON 网络协议 Shell
Docker---Docker基本命令
Docker---Docker基本命令
Docker---Docker基本命令
|
Go Docker 容器
玩转Docker—使用Docker部署Go工程
玩转Docker—使用Docker部署Go工程

热门文章

最新文章