Docker技术01

本文详细介绍了Docker的基本概念、工作原理及其实用操作,包括容器化技术的优势、镜像与容器的关系、仓库的使用以及Docker的安装、启动、管理命令。通过实例展示了如何使用Docker启动和管理容器,强调了Docker相比虚拟机的快速启动特性。此外,还涵盖了Docker镜像的加载原理和容器的生命周期管理。
摘要由CSDN通过智能技术生成

Docker是基于GO语言开发的
文档地址:https://docs.docker.com/ Docker文档是超级详细的!

虚拟机技术的缺点:
1.资源占用十分多
2.冗余步骤多
3.启动很慢

容器化技术:
容器内的应用直接运行在宿主机上的内容,容器是没有自己的内核的,也没有虚拟出我们的硬件,所以轻便;每个容器都是相互隔离的,每个容器内都有属于自己的文件系统,互不影响。

镜像(image):
docker镜像就好比一个模板,可以通过这个模板去创建容器服务,
tomcat镜像===》run===》tomcat01(提供服务器)

容器(container):
docker利用容器技术,独立运行一个或者一个组的应用,通过镜像来创建。
启动,停止,删除,基本命令
目前可以把容器理解成一个简易的linux系统

仓库(repository):
仓库就是存放镜像的地方!
仓库分为公有仓库和私有仓库

安装步骤(看安装文档操作https://docs.docker.com/engine/install/centos/):

1.卸载旧版本
 sudo yum remove docker \
              docker-client \
              docker-client-latest \
              docker-common \
              docker-latest \
              docker-latest-logrotate \
              docker-logrotate \
              docker-engine
              
 2.需要的安装包            
 sudo yum install -y yum-utils
 
 3.设置镜像的仓库(#推荐使用阿里云的)
 yum-config-manager --add-repo   http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
 #更新yum软件包索引
  yum makecache fast
  
 4.安装docker引擎 (docker-ce社区 ee企业版)
 sudo yum install docker-ce docker-ce-cli containerd.io
 
 5.启动docker
 systemctl start docker
 
 6.使用docker version查看是否安装成功
 
## docker images	查看镜像

卸载docker:
1.卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
2.删除资源
rm -rf /var/lib/docker
rm -rf /var/lib/containerd

配置阿里云镜像:
在这里插入图片描述
docker run的运行流程图:
在这里插入图片描述

为什么docker比虚拟机快?
新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,
避免引导,虚拟机是加载Guest OS,分钟级别的!,而docker是利用宿主机的
操作系统,省略了这个复杂的过程!秒级!


docker帮助命令(docker 命令 --help)
帮助文档地址
(https://docs.docker.com/engine/reference/commandline/docker/)

容器命令:
dokcer run 【可选参数】 image

#参数说明  
--name="name" 容器名称 (用于区分容器)
--d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容易端口 -p 8080:8080

测试启动并进入容器:docker run  -it centos /bin/bash
从容器中退回主机:exit

列出所有运行的容器:
docker ps  命令    # 列出当前正在运行的容器
-a #列出当前正在运行的容器 + 历史运行过的容器
-n=? #显示最近创建的容器   ?代表数量
-d #只显示容器的编号

退出容器:
exit #直接停止退出
ctrl + P + Q #容器不停止退出

删除容器:
docker rmi 容器id
docker rm -f $(docker ps -aq)   #删除所有的容器
docker ps -a -q|xargs docker rm  #删除所有的容器

启动和停止容器:
docker start 容器id		#启动容器
docker restart 容器id   #重启容器
docker stop 容器id		#停止当前正在运行的容器
docker kill 容器id			#强制停止当前容器

其他常见命令:
docker ps -d 镜像名	#后台启动容器
问题:docker ps 发现启动的容器停止了
#常见的坑:docker 容器使用后台运行,就必须有一个前台进程,docker发现
没有应用,就会自动停止

docker logs -tf --tail 10 容器id   #查看日志:
-tf显示日志 ,--tail 10 显示日志的条数

docker inspect 容器id 		#查看镜像的元数据

进入容器:
docker exec		#进入容器后开启一个新的终端,可以在里面操作(常用)
docker attach		#进入容器正在执行的终端,不会启动新的终端

docker cp 镜像名:容器内目录 容器外目标目录		#从容器拷贝到主机上

所有的应用,直接打包成镜像,就可以直接跑起来!

如何得到镜像:

1.从远程仓库下载
2.拷贝
3.自己制作一个DockerFile

docker镜像加载原理:

docker镜像实际上就是由一层一层的文件系统组成,这种层级的文件系统
UnionFS(联合文件系统);包含bootfs(黑屏——开机进入系统)、
rootfs(进入系统之后,不同操作系统的发行版,如Centos等)

	对于一个精简的OS,rootfs可以很小,只需要包含最基础的命令,工具
和程序库就可以了,因为底层直接用Host的kernel,自己只需要提供rootfs就
可以了,由此可见对于不同的linux发行版,bootfs基本是一致的,rootfs会
8有差别,因此不同的发行版可以使用公用的bootfs。
(所以虚拟机是分钟级别,容器是秒级!)

特点:

Docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部,
这一层就是我们通常说的容器层,容器之下的都叫镜像层。

commit镜像:

docker commit -a="作者" -m="提交的描述信息" 容器id 目标镜像名:【tag】
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值