docker和docker-compose基础知识(启动,删除,停止,导出也就这些了)

在线电子书:

https://yeasy.gitbook.io/docker_practice/

教学视频:

https://www.bilibili.com/video/BV1sK4y1s7Cj?from=search&seid=10464204038524811742

为什么需要使用docker

生产环境有这么几个问题:
1、不同服务器的运行环境不一样,导致本地可用,但是上传到服务器上就不能用了。
2、在linux下,多用户在同一个操作系统下,但凡有个人写的程序不好,就会出现资源相互抢占,导致服务不可用。
3、业务量突增,运维成本过大,比如双十一需要大量环境,人工配置费时费力。
4、学习一门技术,成本过高,很多次还没开始写程序,在安装部署环境阶段就放弃了。因为每个环境都太不一样了。

docker的发展史

几个年轻小伙砸2010年创办了一个公司,主要做PAAS平台,到了2013年,各大厂商,如亚马逊、微软、谷歌都在做PAAS平台,被挤兑的活不下去了,于是2013年进行开源,2014年获得C轮融资,4000W刀,2015年D轮融资,9500W刀,从此风生水起。

docker的思想

集装箱:

  • 将所有的需要的内容放到不同的集装箱中,谁需要这些环境就直接拿到这个集装箱就可以了。

标准化:

  • 运输标准化:docker有一个码头,所有上传的集装箱都放在这个码头上,谁需要,直接将集装先拿来就能用。
  • 命令标准化:提供一些列命令,帮助我们获取集装箱等操作。
  • 提供REST的api:衍生很多的图形化界面,如:rancher。

隔离性:

  • docker在运行集装箱内容时,会在linux的内核中,单独开辟一片空间,这片空间不会影响到其他程序。

专有名词:

注册中心:也称为超级码头,上面放的就是集装箱。
镜像:口语叫集装箱。
容器:运行起来的镜像。

docker 安装

如果需要安装特定版本的可参考:https://www.eazblog.com/docker-ce-and-compose.html

centos安装docker

1、下载关于docker的以来环境

2、设置docker镜像源

3、安装docker

4、启动,并设置开机启动

docker的中央仓库

这里放着其他用户传来的镜像(集装箱)

  • 官方:镜像最全,下载速度最慢,因为服务器在境外.

  • 国内:网易蜂巢,daoCloud。

  • 公司内部

修改仓库配置:

镜像的操作

容器操作

docker应用

准备ssm工程

略,就是一个网页程序。我也没有,视频里的资料不知道从哪里搞到。

准备mysql容器

准备tomcat容器

数据卷

数据卷:将宿主机的目录映射到容器的一个目录中。
可以在宿主机操作目录中的内容,容器内部映射的文件也会跟着一起改变。

自定义镜像

可以从中央仓库拉取也可以使用自己做的镜像。有的时候我们需要自己制定模板镜像。这时候就需要使用自定义镜像。

创建Dockerfile文件,并制定自定义信息

参数:

  • from:指定当前自定义镜像依赖的环境
  • copy:将相对路径下的内容复制到自定义景象中
  • workdir:声明镜像的默认工作目录
  • cmd:需要执行的命令(在workdir下执行的,cmd可以写多个,但以最后一个为主)

举个例子,自定义一个tomca镜像,并且将ssm.war部署到tomcat中。

将准备好的Dockerfile和相应文件拖转到操作系统中,通过docker命令制作镜像

Docker-compose

之前运行一个镜像,相关参数比较少,还可以使用docker run命令,但是当需要添加大量参数是,就需要使用Docker-compose来管理了。
现在可以通过Docker-compose编写这些参数。
Docker-compose可以帮助我们批量的管理容器。
只需要通过一个Docker-compose.yml文件去维护即可。

下载安装Docker-compose

参考
https://www.eazblog.com/docker-ce-and-compose.html

Docker-compose管理mysql和tomcat容器

yml文件以key: value方式来指定配置信息
多个配置信息以换行+缩进的方式来区分
注意:在Docker-compose文件中,不要使用制表符(tab键)

Docker-compose命令

在使用Docker-compose的命令是,默认使用在当前目录下Docker-compose.yml文件
基于Docker-compose命令进行管理容器

docker-compose配合Dockerfile使用

使用docker-compose.yml文件以及Dockerfile文件在生成自定义镜像的同时启动当前镜像,并且有docker-compose去管理容器。

可以直接启动基于docker-compose.yml以及Dockerfile文件构建的自定义镜像

如果自定义不存在,会帮我们构建自定义镜像,如果已经存在,会直接运行这个镜像

Docker CI、CD(需补充)

引言:
项目部署:
将项目通过maven进行编译打包
将文件上传到指定的服务器中
将war包放到tomcat的目录中
通过Dockerfile将tomcat和war包转成一个镜像,有dockercompose去运行容器
项目更新
将上述流程重新从头在执行一次

CI
Continuous Integration持续集成
编写代码是,完成一个工程后,立即提交代码到Git仓库中,将项目重新构建并测试

  • 快速发现问题
  • 防止代码偏离主分支,(写一点就测一点)

CD
持续交付&&持续部署
持续交付:将代码交给专业的测试人员
持续部署:自动发布到服务器上
https://www.bilibili.com/video/BV1sK4y1s7Cj?p=24

点赞