kubernetes教程之docker入门

本文介绍了Docker的基础用法,包括安装Docker,运行Hello World容器,创建并运行Node.js应用,理解镜像的分层结构,查看和管理容器,以及如何停止、删除容器。此外,还详细讲解了如何将本地镜像推送到Docker Hub仓库,为后续的Kubernetes学习打下基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


最近在学习kubernetes, 阅读了《Kubernetes 实战》,本文主要介绍docker的简单使用,如果本文对您有帮助,请不要吝啬您的点赞,谢谢~

Docker hello world

  • 首先安装docker
  • 然后运行docker run busybox echo "Hello world"
    会出现:
    docker run 成功
  • 背后原理
    docker run背后原理图
  • Docker支持同一个镜像多个版本,每一个版本必须有唯一的tag名,当引用镜像没有显示地制定tag时,默认为latest,如果想要运行别的版本的镜像:
    • docker run <image>:<tag>

docker 创建一个简单的node.js应用

  • 新建文件夹firstTest,在里面创建app.js 文件:
const http = require('http');
const os = require('os');

console.log("Kubia server starting ...");

var handler = function(request, response) {
	console.log("Received request from " + request.connection.remoteAddress);
	response.writeHead(200);
	response.end("You've hit " + os.hostname() +" \n");
};

var www = http.createServer(handler);
www.listen(8080);
  • 创建Dockerfile
    • 指定使用node镜像的tag 7版本
    • 把本地的app.js文件添加到镜像的根目录,
    • 最后指定当镜像背运行时需要被执行的命令 node app.js
FROM node:7
ADD app.js /app.js
ENTRYPOINT ["node", "app.js"]
  • 构建容器镜像 docker build -t kubia .
    • 基于当前目录,构建一个叫做kubia的镜像
      基于Dockerfile构建镜像
  • docker镜像是分层的
    • 构建镜像时,Dockerfile中每一条单独的指令都会创建一个新层
  • 查看本地的镜像docker images
    docker images查看本地存储的镜像
  • 运行容器镜像
    • docker run --name kubia-container -p 8080:8080 -d kubia
    • 基于kubia镜像创建一个叫kubia-container的新容器,-d意味着在后台运行,本机的8080端口和容器内的8080端口映射,所以可以通过http:localhost:8080可以访问容器内的应用
    • 访问:curl localhost:8080, 可以看见这是容器的id
    • 利用docker ps 可以查看正在运行中的容器,
    • 利用docker inspect kubia-container 可以看见容器的底层信息

探索运行容器的内部

  • docker exec -it kubia-container bash
    • 会在容器内部运行bash,bash进行会和主容器进程拥有相同的命名空间
    • -it
      • -i 确保标准输入流保持开放,需要在shell中输入命令
      • -t 分配一个伪终端 TTY
  • 开始探索
    • ps aux 查看容器内运行的进程
    • exit 退出容器

停止和删除容器

  • docker stop kubia-container 停止容器
  • docker ps -a 打印所有的容器
  • docker rm kubia-container 真正删除一个容器

向镜像仓库推送镜像

  • 先去https://hub.docker.com/ 注册一个账号,需要自己的邮箱
  • 然后本地运行docker login, 需要输入用户名密码,然后登陆成功
  • 给同一个镜像创建一个额外的标签
    • docker tag kubia xj/kubia
  • 向docker hub推送镜像
    • docker push xj/kubia
    • 如果出现denied,请重命名一个名称,可能被占用
      推送镜像docker hub成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值