docker
一、概述
1.什么是docker
docker是一个应用容器引擎,基于 Go 语言,将应用程序装箱打包成独立的容器,确保应用程序在不同的环境下都能运行。Docker的主要目标是‘build ,ship and run any app,anywhere’,也就是说通过对应用程序组件的封装,分发,部署,运行等生命周期的管理。容器之间不会有交互接口,并且开销极低。
2.docker有什么优势
有时候开发过程中没问题,运维时换个环境就出错了。
docker直接将该springboot项目制作成一个镜像文件,直接部署linux即可,减少依赖冲突概率。
Docker最终解决了运行环境配置中的问题。----镜像文件底层封装好了
二、名词介绍
镜像:类似于安装包,有运行的文件和配置信息文件。
容器:镜像运行的实例
仓库:存放镜像的地方
容器和虚拟机的区别:
虚拟机:虚拟硬件。在虚拟机上我们安装操作系统linux镜像。然后在操作系统上安装软件。
docker:操作系统层面的虚拟化。可以看做容器的管理器,依赖和应用都被打包在镜像中了,实际上docker中的镜像大小肯定会大于直接安装时候的大小。因为镜像中打包的还有他的依赖。容器和容器之间是隔离的。
特性 |
容器 |
虚拟机 |
启动速度 |
秒级 |
分钟级别 |
硬盘使用 |
一般为MB |
一般GB |
性能 |
接近原生 |
弱于 |
系统支持量 |
单机支持上千个容器 |
一般几十个 |
隔离性 |
完全隔离 |
完全隔离 |
三、安装
查看安装成功的三种方法:查看版本号、查看进程、查看服务(守护进程)
- 1.通过 uname -r 命令查看你当前的内核版本
uname -r |
2.使用 root 权限登录 Centos。确保 yum 包更新到最新。
yum -y updat |
该过程大概需要维持10分钟左右 |
3.卸载旧版本(如果安装过旧版本的话)
yum remove docker docker-common docker-selinux docker-engine |
4.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2 |
5.设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo |
6.可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r |
7.安装docker
sudo yum install -y docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版18.03.1 |
8.启动并加入开机启动
systemctl start docker systemctl enable docker |
9.验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
docker version |
四、原理
1.下载镜像原理
2.阿里云加速镜像
每个人的镜像地址都是不一样的。
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
依次执行给的代码。
五、常用命令
获取docker版本:
docker -version
查看镜像:
docker images
查看镜像(只显示镜像id)
docker images -q
下载镜像、删除镜像:
docker pull nginx
docker images
docker rmi nginx
查看容器
docker ps
查看容器的详情
docker inspect 428175106d92
运行容器
docker run -i(保持容器一直运行)-t(给容器一个伪终端)-d(后台运行,不直接进入容器) --name=tomcat9.2(给启动容器起名字)-p 8080:8080(宿主:docker容器)tomcat:9.2(启动的容器)
docker run -itd --name=test_tomcat -p 8081:8080 tomcat
查看运行着的和停止的大容器:
docker ps -a
docker stop 428175106d92
删除容器:
docker rm b4a5982f1adf
启动容器并进入内部bash
docker start 428175106d92
docker exec -it 428175106d92 bash
我们可以看到容器也类似于一个小的linux系统,我们在这个上面运行镜像。