Docker 技术的三大核心概念
-
镜像 Image
-
容器 Container
-
仓库 Repository
在线练习docker https://labs.play-with-docker.com/
URL 工具 curl 的用法指南 https://www.ruanyifeng.com/blog/2019/09/curl-reference.html
Docker部署一个web项目并打包成镜像文件 https://www.jb51.net/article/146308.htm
Kubernetes能做什么 一般来讲Kubernates是针对容器提供部署、维护、扩展机制等功能,更方便地管理跨机器运行容器化的应用使用场景
- 解决环境不一致
- 多用户操作系统,会相互影响
- 运维成本过高
- 安装软件成本过高
docker的思想
- 集装箱 放着所有的需要的内容
- 标准化
1.运输的标准化
2.命令的标准化
3.提供rest的api
3 . 隔离性
- 在内核中开辟独立空间
- 三个基本概念
- 注册中心
抽象理解
镜像 == 类
容器 == 对象
容器与镜像的关系类似于面向对象编程中的对象与类
docker的基本操作
一、安装docker
1.下载docker的依赖环境
yum -y install yum-utils device-mapper-persistent-data 1vm2
2.设置镜像源
yum-cofig-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装docker
yum makacache fast
命令行工具
yum -y install docker-ce
4.启动并设置为开机自启
- systemctl start docker
- systemctl enable docker
- docker run hello-world 测试
二、 docker的中央仓库
1. 官方的中央仓库:安全 速度慢 hub.docker.com
2. 国内 网易蜂巢 c.163yun.com/hub#/home daoCloud hub.daocloud.io(推荐)
3. 公司内部会采用私服的方式拉取镜像 需要配置
需要在/etc/docker/daemon.json 加上
{
"registry-mirrors":["https://registry.docker-cn.com"],
"insecure-registries":["ip:port"]
}
重启两个服务
- systemctl daemon-reload
- systemctl restart docker
三、 镜像的操作
- 拉取镜像到本地 docker pull 镜像路径:版本号
- 查看本地所有镜像 docker images
- 删除镜像 docker rmi 容器ID ID不必全部
- 镜像的导入导出
- 导出 docker save -o 导出路径 镜像ID
- 导入 docker load -i 文件路径
- 修改镜像名称 docker tag 镜像ID 新镜像名称:版本
四、 容器的操作
- docker run 镜像的标识|镜像[:tag]
常用的参数
docker run -d -p 宿主端口:容器端口 --name 容器名称 镜像的标识|镜像[:tag]
-d 代表后台运行的容器
-p 宿主端口:容器端口 为了映射当前linux的端口和容器的端口
–name 容器名称:指定的容器的名称 - 查看正在运行的容器
docker ps [-qa]
-a 查看全部 包括没有运行的
-q 只查看容器的标识 - 查看容器的日志
docker logs -f 容器ID
-f 可以滚动查看日志的最后几行 - 进入容器内部
docker exec -it 容器id bash - 删除容器
docker stop 容器ID
docker stop $(docker ps -qa) 停止全部容器
docker rm 容器ID
docker rm $(docker ps -qa) 删除全部容器
五、Docker的应用
- 准备项目包
- 准备mysql容器
docker run -d -p 3306:3306 --name mysql -e MYSQL_PASSWORD=root daocloud.io/library/mysql:5.7.4 - 准备php容器
–同上 - 准备nginx容器
–同上
把项目包复制到网站根目录下
docker cp 文件名称 容器id:容器内部路径
六、数据卷
概念:将宿主机的一个目录映射到容器的一个目录中
- 创建数据卷
docker volume create 数据卷名称
创建之后,默认会存放在一个目录下 /var/lib/docker/volumes/数据卷名称/_data - 查看数据卷的详细信息
docker volume inspect 数据卷名称 - 查看全部数据卷
docker volume ls - 删除数据卷
docker volume rm 数据卷名称 - 应用数据卷
当你映射数据卷时,如果不存在会自动创建
docker run -v 数据卷名称:容器内部的路径 镜像ID
直接指定一个路径为数据卷的存放位置
docker run -v 路径:容器内部的路径 镜像ID - docker自定义镜像
- 创建一个Dockerfile文件,并且指定自定义镜像信息
Dockerfile常用的内容
from 指定当前自定义的依赖环境
copy 将相对路径下的内容复制到自定义镜像中
workdir 声明镜像的默认工作目录
cmd 需要执行的命令 在workdir下执行 cmd写多个 以最后一个为准
举个栗子
from daocloud.io/library/tomcat:8.5.15-jre8
copy ssm.war /usr/local/tomcat/webapps - 将准备好的Dockerfile相应的文件拖拽到Linux中,通过docker命令制作镜像
docker build -t 镜像名称[:tag] .
- 创建一个Dockerfile文件,并且指定自定义镜像信息