k8s从入门到实战(零):Docker基础

501 阅读2分钟
docker是什么

一句话,docker是一种容器化技术,你可以类比成现实中的集装箱,那么什么是容器化,容器化解决了什么问题

1.标准化

使用docker,不管你的应用开发语言是什么,运行环境是什么,docker定义了一套标准的应用构建,分享,运行的机制

2.资源隔离

包括网络的隔离,计算资源的隔离,用户权限的隔离等,隔离的好处就是避免应用之间相互影响

3.docker架构

image.png 名词解释

  • Docker_Host:安装Docker的主机

  • Docker Daemon:运行在Docker主机上的Docker后台进程

  • Client:操作Docker主机的客户端(命令行、UI等)

  • Registry:镜像仓库(如docker hub)

  • Images:镜像,带环境打包好的程序,可以直接启动运行

  • Containers:容器,由镜像启动起来正在运行中的程序

4.与虚拟机的差异

docker运行的容器是一个进程,只是这个进程被限制了对CPU内存等资源的访问,当进程被杀掉后,容器也会退出

docker常用操作

docker的常用操作就是先拉取镜像(从公共或私有镜像仓库),然后运行这个镜像创建一个容器

拉取镜像

下面的nginx可以替换成其他镜像名称

#下载最新版
docker pull nginx  
#下载指定版本
docker pull nginx:1.20.1 
查看你拉取的镜像
docker images
其他镜像操作
# 删除某个镜像 
docker rmi 镜像名:版本号/镜像id

# 将镜像保存成压缩包
docker save -o abc.tar guignginx:v1.0 

# 别的机器加载这个镜像 
docker load -i abc.tar
创建容器

语法:【docker run 设置项 镜像名】

docker run --name=mynginx  -d --restart=always -p 88:80  nginx

--name:指定容器名称

-d:后台运行

--restart=always: 开机自启 -p 88:80:端口映射(左侧是宿主机端口,右侧是容器端口)

查看正在运行的容器
# 查看正在运行的容器 docker ps 
# 查看所有(包括停止的) docker ps -a
其他容器操作
# 删除停止的容器
docker rm  容器id/名字
docker rm -f mynginx   #强制删除正在运行中的

#停止容器
docker stop 容器id/名字

#再次启动
docker start 容器id/名字

# 进入容器内部的系统,修改容器内容
docker exec -it 容器id  /bin/bash