Docker-day01

Docker

解决开发环境,测试环境,生产环境之间的开发环境不匹配问题。

将软件(依赖环境和源代码(打包))装在一个容器中在三个解决环境迁移问题,我们用的就是Docker容器。

Docker架构

Image是Docker镜像,相当与一个root文件系统。

container是容器,是镜像运行的实体。

repository是仓库,有官方提供的,也有公司自己的私服,用来保存镜像。

关系:

​ Image --> container

​ 类 —> 对象

Docker命令

Docker镜像相关命令

1.查看镜像:

​ docker images

2.搜索镜像:

​ docker search 软件名

3.拉取镜像:

​ docker pull 软件名 :【版本号】(不填的话就是默认下载最新的)

4.删除镜像:

​ docker rmi 镜像id。如果镜像id一样的话,还可以通过版本号删除

​ docker images -q 获取所有镜像的id,

​ docker rmi docker images -q 删除所有镜像

Docker容器相关命令

1.查看正在运行的容器:

​ docker ps (-a)不加-a则只查看运行中的容器,加了就能查看历史用过的所有容器

2.退出容器:

​ exit

3.创建容器:

​ docker run 参数

​ 参数: -it 交互式容器 -id 守护式容器 --name 名字 为容器命名

4.启动容器:

​ docker start 容器名字

5.关闭容器 :

​ docker stop 容器名字

数据卷

1.数据卷定义

​ 宿主机的目录(或文件)和容器中的目录(或文件)挂载起来,即相互绑定,宿主机的目录(或文件)就称为数据卷。绑定后,双方的变化会同步进行。


注: 数据卷的使用可以使得容器数据持久化,即当数据卷和容器中的目录绑定后,容器中的变化,都会同步到宿主机中的数据卷中。而且还可以实现外部机器和容器间接通信,即外部机器不可以和容器直接进行信息交换,但是可以和宿主机进行信息交换,通过改变数据卷,容器中的与数据卷相互绑定的目录也随之改变,从而实现间接通信。还可以实现容器之间的数据交换,即容器之间不能相互交换数据,但是多个容器之间都和一个相同的数据卷相互绑定,通过数据卷这个作为中间媒介,来实现容器之间的数据交换。


2.配置数据卷

​ docker run -v 宿主机目录(或文件)绝对路径: 容器内目录(或文件)绝对路径 …

3.数据卷容器

Docker应用部署

MySQL部署

​ 1.搜索镜像

​ 2.拉取镜像

​ 3.创建容器

​ 4.操作容器中的mysql

端口映射

Tomcat部署
Nginx部署
Redis部署

Dockerfile

1.Docker镜像原理:

​ 分层的文件系统

2.文件管理子系统:

​ bootfs:包含bootloader(引导加载程序)和kernel(内核)

​ rootfs:root文件系统


注: 底层是bootfs,第二层是rootfs基础镜像,往上可以叠加镜像,上层的镜像可以使用到下层的镜像(就像一个三明治,往上面可以叠加镜像(面包片))

注: 每个镜像的安装包大小比镜像的大小要小的原因是,镜像还需要依赖父镜像以及基础镜像,底层的镜像都可以是上层的父镜像


镜像制作

1.容器转为镜像

​ 容器转为镜像:

​ docker commit 容器id 镜像名称:版本号

​ 镜像转为压缩文件:

​ docker save -o 压缩文件名称 镜像名称:版本号

​ 压缩文件转为另一个镜像:

​ docker load -i 压缩文件名称

2.dockerfile

​ 文本文件,包含了很多指令,每条指令构建一层,基于基础镜像,最终构建处一个新的镜像。

关键字

​ FROM 指定父镜像

​ RUN 执行命令

​ CMD 容器启动命令

​ ENTRYPOINT 入口

Docker私有仓库

上传镜像

拉取镜像

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值