Docker概述
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。通过隔离机制,将服务器用到极致。和传统的虚拟机不同的是,每个人都由自己的lib.
应用更快速的交付和部署,更快的升级和扩容。
Docker中的名词概念
镜像(image)
docker镜像好比一个模板,可以通过这个模板创建容器服务,tomcat镜像==》run==>tomcat01(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)
容器(container)
独立运行一个或者一个组应用,通过镜像创建,启动,停止,删除,基本命令!
仓库(repository)
仓库就是存放镜像的地方,分为公有仓库和私有仓库!
安装
看官网 https://docs.docker.com/engine/install/centos/
注意使用阿里云镜像 ,还要注意更新yum 软件包索引。yum makecache fast
/var/lib默认的安装路径
配置阿里云加速器
为什么docker比VM更快
1、docker有着比虚拟机更少的抽象层。由于docker不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源。因此在CPU、内存利用率上docker将会在效率上有明显优势。
2、docker利用的是宿主机的内核,而不需要Guest OS。
Docker的常用命令
常识
docker version
docker info //显示docker的系统信息 包括镜像和容器
docker 命令 --help
镜像命令
docker search mysql --fileter=starts=5000 //搜索大于5000收藏量的东西
docker pull mysql:5.7 //分层下载,就是不下载重复的。
docker rmi -f 镜像ID
docker rmi -f ${docker images -aq}
容器命令
docker pull centos 先下载一个镜像
新建一个容器并启动
docker run image
--name="NAME" 容器名字
-d 后台运行
-it 交互式方式,进入容器查看内容docker run -it centos /bin/bash
-P 指定容器端口 或者 -P ip:主机端口:容器端口
-p 随机指定端口
docker ps 列出当前正在运行的容器 -a的话,会列出历史容器 -n=?显示最近创的容器
docker rm -f 容器id
docker start 容器id
docker stop 容器id
docker kill 容器id
docker restart 容器id
常用命令
docker run -d centos
容器后台运行,必须要有一个前台进程
docker logs -ft --tail 10 容器id 日志 -t 时间戳 --tail行数
docker top 容器iD 查看容器内进程信息
docker inspect 容器id 查看容器的详细信息
命令 docker exec -it 容器id /bin/bash 进入容器
进入容器开启一个新的终端
docker attach 容器id
容器内拷贝文件到主机上
docker cp 容器id:/文件路径 /主机上的路径
练习
安装nginx
docker pull nginx
docker run -d -name nginx01 -p 3333:80 nginx
curl localhost:3333
可视化
portainer
Rancher(CI/CD再用)
Portainer
docker run -d -p 8088:9000
–restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=true portainer/portainer
commit镜像
dockers commit -m=“描述信息” -a=“作者” 容器id 新的容器名字 //用于保存当前容器的状态
容器数据卷
将容器内的目录挂载到linux上
docker run -it -v 主机目录,容器内目录
docker run -it -v /home/test:/home centos /bin/bash
-e是环境配置
具名和匿名挂载
docker容器内的卷,没有指定目录的情况下,都在/var/lib/docker/volumes/XXXXX/_data
匿名挂载 -v容器内路径 -v 卷名:容器内路径 具名挂载 -v /宿主机路径::容器内路径 指定路径挂载
docker volume inspect 卷名
查看卷名的详细信息
docker run -d -P --name nginx2 -v 卷名:/路径 nginx
DockerFIle
创建一个Dockerfile文件 脚本
通过这个脚本可以生成镜像,镜像是一层一层的,脚本是一个个的命令
里边的每个命令,就是镜像的一层
docker build 建成一个镜像
docke run
docker push