docker

本文深入介绍了Docker,解释了它如何解决环境兼容性问题,通过与虚拟机的对比展示了其轻量级特性。详细探讨了Docker架构,包括镜像、容器和Dockerfile,还讲解了Docker的基本操作如镜像管理和容器操作。此外,介绍了使用Docker-Compose部署微服务集群的方法,以及Docker镜像仓库的使用。
摘要由CSDN通过智能技术生成

1、Docker

1.1.什么是Docker

Linux操作系统结构:
计算机硬件(底层)+内核Linux+应用系统(CentOS等)+应用(MySQL等)

服务的拆分会给部署带来麻烦;大型项目组件较多,运行环境也较为复杂,部署时可能出现兼容性问题;开发、测试、生产环境有差异。

Docker可以解决依赖的兼容问题,采用两个手段:

  • 将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
  • 将每个应用放到一个隔离容器去运行(使用沙箱机制),避免互相干扰

Docker解决操作系统环境差异:

  • Docker将用户程序与所需要调用的系统函数库一起打包
  • Docker运行到不同操作系统时,直接基于打包的函数库,借助于操作系统的Linux内核来运行

Docker是一个快速交付应用、运行应用的技术,具备以下优势:

  • 可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
  • 运行时利用沙箱机制行程隔离容器,各个应用互不干扰
  • 启动、移除都可以通过一行命令完成,方便快捷

1.2.Docker和虚拟机的区别

虚拟机:是在操作系统中模拟硬件设备,然后运行另一个操作系统。
Docker:仅仅是封装函数库,并没有模拟完整的操作系统。

  • docker是一个系统进程;虚拟机是在操作系统中的操作系统
  • docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般

1.3.Docker架构

镜像(Image)
  Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,成为镜像。
镜像都是只读的。
容器(Container)
  镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见。容器里有自己的cpu、内存等数据。
DockerHub
  官方的Docker镜像的托管平台,这样的平台成为Docker Registry。
Docker架构
  我们要使用Docker来操作镜像、容器,就必须要安装Docker。Docker是一个CS架构的程序,有两部分组成:

  • 服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等
  • 客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令

请添加图片描述

2、Docker的基本操作

docker应用需要用到各种端口,因此建议直接关闭防火墙。

systemctl stop firewalld # 关闭
systemctl disable firewalld # 禁止开机启动防火墙

systemctl start docker  # 启动docker服务
systemctl stop docker  # 停止docker服务
systemctl restart docker  # 重启docker服务

docker -v # 查看docker版本

docker --help # 查看帮助文档

2.1.镜像操作

镜像的名称组成:

  • 镜像名称一般分两部分组成:[repository]:[tag]
  • 在没有指定tag时,默认是latest,代表最新版本的镜像

镜像命令
请添加图片描述
拉取、查看镜像

  • 去镜像仓库搜索需要的镜像名称,拉取 自己需要的镜像
    • docker pull nginx
  • 查看 拉取到的镜像资料
    • docker images

保存、导入镜像(docker xx --help可以查看语法)

  • 导出 镜像到磁盘,tar格式文件:
    • docker save -o [镜像要保存到的文件目录名称] image(镜像名称)
  • 加载 镜像(要先删除虚拟机本身有的镜像)
    • 删除本地的nginx镜像:docker rmi nginx:latest
    • 加载本地文件:docker load -i nginx.tar

小结

docker build # 构建镜像 				-->Dockerfile

docker images # 查看镜像
docker rmi 要删除镜像名 # 删除镜像        			-->local本地

docker save -o 压缩后文件名 要压缩镜像名 # 保存镜像为一个压缩包
docker load -i 压缩包名# 加载压缩包为镜像			-->xxx.tar
	load后可以接-i和-q,-q不会打印日志

docker pull # 从服务拉取镜像
docker push # 推送镜像到服务				-->镜像服务器

2.2. 容器操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值