Docker

  • Docker安装
  • Docker架构
  • 配置Docker镜像加速器
  • docker命令
  • docker服务相关的命令
  • docker镜像相关的命令
  • Docker容器相关命令
  • Docker容器的数据卷
  • 数据卷的作用
  • 配置数据卷
  • 数据卷容器
  • Docker应用部署
  • MySQL部署
  • Tomcat部署


我们写代码会接触到好几个环境: 开发环境、测试环境、测试环境

docker发布java docker发布应用流程_容器


不知道大家有没有遇到过这种情况,一个代码在自己电脑跑的好好的,但是在放到别人的电脑上跑的时候忽然就报错了,究其根本只能是因为环境不匹配导致的,但如何解决这种因为环境导致的问题呢?是不是可以在迁移的过程中,把环境也迁移过去,Docker就是为此而生的
Docker是一个开源的应用容器引擎
Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上。
容器是完全使用沙箱机制,相互隔离
容器性能开销极低

Docker安装

第一步:先查看centsos版本
Docker要求CentOS系统的内核版本高于3.10

docker发布java docker发布应用流程_Docker_02


如果不满足的话可以升级软件包及内核
yum updat

第二步:安装Docker

docker发布java docker发布应用流程_容器_03


第三步: 启动Docker

docker发布java docker发布应用流程_Docker_04


第四步:开机启动docker

docker发布java docker发布应用流程_Docker_05


第五步:停止docker

docker发布java docker发布应用流程_docker发布java_06

Docker架构

docker发布java docker发布应用流程_docker发布java_07


镜像(Image) : Docker镜像(lmage),就相当于是—个root文件系统。比如官方镜像ubuntu:16.04就包,含了完整的一套Ubuntu16.04最小系统的root文件系统。
容器(Container) :镜像(lmage)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
仓库(Repository) :仓库可看成一个代码控制中心,用来保存镜像。

配置Docker镜像加速器

docker发布java docker发布应用流程_运维_08

docker命令

docker服务相关的命令

启动docker

docker发布java docker发布应用流程_运维_09


查看docker状态

docker发布java docker发布应用流程_Docker_10


停止docker

docker发布java docker发布应用流程_容器_11


重启docker

docker发布java docker发布应用流程_docker发布java_12


开机启动docker

docker发布java docker发布应用流程_docker_13

docker镜像相关的命令

查看镜像

docker发布java docker发布应用流程_docker_14


搜索镜像

docker发布java docker发布应用流程_Docker_15


拉取镜像

docker发布java docker发布应用流程_docker_16


删除镜像

docker发布java docker发布应用流程_docker发布java_17


删除所有镜像

docker发布java docker发布应用流程_容器_18

Docker容器相关命令

查看容器

docker发布java docker发布应用流程_docker_19


docker发布java docker发布应用流程_Docker_20


创建容器

docker发布java docker发布应用流程_容器_21


注意

docker发布java docker发布应用流程_运维_22

如果通过-it创建的容器,退出容器哦之后就关闭了

该创建方式通过exit退出之后不会关闭容器

docker发布java docker发布应用流程_docker发布java_23


进入容器

docker发布java docker发布应用流程_Docker_24


启动容器

docker发布java docker发布应用流程_运维_25


关闭容器

docker发布java docker发布应用流程_Docker_26


删除容器

docker发布java docker发布应用流程_docker发布java_27


删除所有容器

docker发布java docker发布应用流程_docker_28


查看容器信息

docker发布java docker发布应用流程_运维_29

Docker容器的数据卷

Docker容器删除后,在容器中产生的数据还在吗?
Docker容器和外部机器可以直接交换文件吗?

docker发布java docker发布应用流程_容器_30


容器之间想要进行数据交互?

docker发布java docker发布应用流程_容器_31


数据卷:1.数据卷是宿主机中的一个目录或文件
2.当容器目录和数据卷目录绑定后,对方的修改会立即同步

docker发布java docker发布应用流程_容器_32


3.一个数据卷可以被多个容器同时挂载
4.一个容器也可以呗挂载多个数据卷

数据卷的作用

1.容器数据持久化
2.外部机器和容器间通信
3,容器之间数据交换

配置数据卷

创建启动容器时,使用-v参数 设置数据卷

docker发布java docker发布应用流程_docker_33


注意事项:
1.目录必须是绝对路径
2.如果目录不存在,会自动创建
3.可以挂载多个数据卷

恢复容器

docker发布java docker发布应用流程_docker发布java_34

数据卷容器

多容器进行数据交换
1.多个容器挂载同一个数据卷
2.数据卷容器

docker发布java docker发布应用流程_容器_35


配置数据卷容器
1.创建启动c3数据卷容器,使用-v参数设置数据卷

docker发布java docker发布应用流程_容器_36


2.创建启动c1 c2容器,使用–volumes-from参数 设置数据卷

docker发布java docker发布应用流程_Docker_37


docker发布java docker发布应用流程_docker_38

Docker应用部署

MySQL部署

案例需求:
在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQL Server

docker发布java docker发布应用流程_运维_39


该操作行为称为端口映射
实现步骤:
第一步:搜索mysql镜像
第二步:拉取mysql镜像

docker发布java docker发布应用流程_docker发布java_40


第三步:创建容器、设置端口映射、目录映射

docker发布java docker发布应用流程_运维_41


docker发布java docker发布应用流程_docker_42


第四步:操作容器中的mysql

docker发布java docker发布应用流程_docker发布java_43


docker发布java docker发布应用流程_docker发布java_44

Tomcat部署

在Docker容器中部罢Tomcat,并通过外部机器访问Tomcat部署的项目。
实现步骤:
1.搜索tomcat镜像
2.拉取tomcat镜像
3.创建容器

docker发布java docker发布应用流程_容器_45


docker发布java docker发布应用流程_运维_46


4.部署项目
5.测试访问