一、Docker概念
docker是开源的应用容器引擎,将应用及依赖打包到可移植的容器中,发布到linux下
linux部署应用: 装linux + tomcat 应用部署到tomcat 坏处:linux启动慢
dicker部署应用: 应用 + tomcat 做成镜像,启动快。
二、开始
1、安装:有版本要求:centos7+ 其他环境可升级内核
yum install docker -y 安装
docker --version 检查版本
systemctl start docker 启动docker
systemctl enable docker 添加开机启动项
docker info 查看状态
2、概念
镜像:镜像可做成文件用于传输,再将文件还原成镜像
仓库:docker hub一个镜像仓库, 内有tomcat,mysql等镜像
容器:容器与镜像的关系类似于面向对象编程中的对象与类,通过镜像来创建容器。
3、操作:
镜像:
网络搜索镜像: docker search tomcat
拉取镜像:docker pull mysql:5.7.22 镜像名:版本
查看镜像:docker images 是docker image ls简写
删除镜像: docker image rm 镜像名:版本
容器:
根据镜像启动容器:docker run -d --name yd-8080 -p 8080:8080 yd-8080
-d后台启动 --name起容器名 -p 将linux外部端口映射到容器内部8080端口 启动成功有id唯一标识
docker run --name mysql2 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=‘123456’ -d mysql:5.7.22
-v volumes:存储
查看容器启动日志:docker logs 容器id/容器名
启动容器:docker start 容器名/id
查看有哪些容器:docker ps
查看启动的容器:docker ps -a
停止容器:docker stop 容器名称/容器ID
删除容器:docker rm –f 容器id:删除一个容器(如果容器正在运行需要加-f)
进入容器:docker exec -it nginx /bin/bash 进入到容器里,容器里又有一套linux系统
将文件拷贝容器的某个目录下:docker cp nginx.conf nginx:/etc/nginx
构建镜像:
1、docker commit t1 ssm:1.0 将一个启动的容器做成镜像
2、使用docker file构建 (最常用) 让你能看到操作过程的命令
以别人构建好的镜像为基础 来进行构建
先创建一个目录,创建一个Dockerfile文件,war包要放在同一级目录下
docker build -t she:2.0 . 运行Dockerfile文件创建镜像
单节点的容器编排:docker compose
管理单节点上的所有容器,配置yml文件,利用文件启动
多节点的容器编排:swarm:docker本身的集群容器编排工具
k8s:谷歌的容器集群编排工具
用于管理一套容器集群,只需要让用户面向工具
三、常用
单节点的容器编排:docker compose //管理单节点上的所有容器,配置yml文件,利用文件启动
docker build -t s-8080 . //运行Dockerfile文件创建镜像
docker-compose up -d //执行docker-compose.yml文件
docker logs -f -t --tail 30 tomcat1 //实时查看容器tomcat1t的最后30行日志
参考:docker容器日志查看
1.数据卷的使用
参考:docker数据卷
docker volume ls //查看所有数据卷
docker volume inspect myvo //查看数据卷详细信息
docker volume rm myvo //删除数据卷
共享volume(–volume-from)容器与已有的容器共享volume
2.Docker network
docker提供了多种网络驱动:
bridge:默认的网络驱动。常用于独立的容器群中内部通信,容器和宿主机的网络是隔离的。
host:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
overlay:提供多个docker守护进程管理的容器间的通信能力,包括swarm服务之间、swarm服务和独立容器群之间以及独立容器之间。
macvlan:允许你给容器分配一个MAC地址,让它作为一个物理网路装置。
none:无网络状态。