Docker技术简介

一,Docker技术简介。
Docker是一个虚拟化平台,可以通过虚拟化方式,为应用提供可运行的容器,
基于这种方式,可更快地打包、测试以及部署应用程序。
=========================================================================
二,Docker 核心对象。
1.镜像.
Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,
还包含了一些为运行时准备的一些配置参数,例如JDK镜像、Centos镜像、MySQL镜像等,
可以暂时先将其理解为一个安装程序。
2.容器.
Docker容器可以将其理解为一个运行镜像的载体。
=========================================================================
三,Docker 应用架构分析。
Docker Host:是我们的docker宿主机,就是安装了docker的操作系统。
Registry:是docker拉取镜像的远程仓库,提供大量的镜像供下载,下载完成之后保存在Images中。
Docker Daemon:是docker的服务线程,处理Docker客户端命令。
Images:是Docker本地的镜像仓库,可以通过docker images查看镜像文件。
=========================================================================
四,Docker运行机制。
docker pull 执行过程:
1.客户端将指令发送给docker daemon.
2.docker daemon 先检查本地images中有没有相关的镜像.
3.如果本地没有相关的镜像,则向镜像服务器请求,将远程镜像下载到本地.
=========================================================================
一,Docker服务基本操作。
启动docker服务----------- systemctl start docker
查看Docker状态----------- systemctl status docker
设置Docker开机自启------- systemctl enable docker
重新启动Docker服务-------- systemctl restart docker
查看Docker信息------------docker info
停止docker服务------------systemctl stop docker
=========================================================================
二,Docker镜像操作实践。
下载镜像----------------docker pull 镜像名
浏览镜像文件------------docker images
查看镜像详情------------docker inspect 镜像名
查看镜像历史------------docker history 镜像名
导出镜像文件------------docker save  hello-world | gzip > hello-world.tar.gz
删除镜像文件------------docker image rm hello-world
导入镜像操作------------docker load < hello-world.tar.gz  
运行镜像文件------------docker run hello-world
=========================================================================
三,Docker 容器操作实践。
创建并启动容器(Container)----docker run -it xxxx bash
注意:-it表示两个参数,-i表示交互式操作,-t表示终端。
     bash表示进入操作终端,基于交互式进行线管操作。
-----------------------------------------------------------
查看Docker中的容器-----------docker ps
注意:不要在容器中执行docker指令。
-----------------------------------------------------------
查看docker运行中的所有容器---------docker ps -a
-----------------------------------------------------------
查看容器日志(logs)信息--------docker container logs +容器id
注意:查看容器的运行日志时,容器应该处于一种运行状态.
-----------------------------------------------------------
停止运行的容器--------docker container stop+容器id
-----------------------------------------------------------
重新启动容器----------docker container restart+容器id
-----------------------------------------------------------
进入指定容器----------docker exec -it+容器id
-----------------------------------------------------------
删除运行中的容器-------docker container rm(-f)+容器id
-----------------------------------------------------------
清理所有终止状态容器----docker container prune
=========================================================================
一,Docker数据管理实践。
在容器中管理数据主要有两种方式:
1.数据卷(Volumes)
2.挂载主机目录 (Bind mounts)
=========================================================================
二,数据卷。
数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用,
默认会一直存在,即使容器被删除。
=========================================================================
数据卷操作:
创建数据卷------------------------docker volume create container-vol.
查看所有数据卷--------------------docker volume ls
查看指定 数据卷 的信息-------------docker volume inspect container-vol
启动挂载数据卷的容器---------------docker run -it -v container-vol:/root centos:7 bash
注意:-v container-vol:/root 把数据卷 container-vol 挂载到容器的 /root 目录
=========================================================================
挂载主机目录:
docker run -it -v /usr/app:/opt/app centos:7 bash
1./usr/app:为宿主机目录。
2./opt/app: 为启动容器的一个目录。
3.-v 用于指定挂载目录,如果本地目录(宿主机目录)不存在, 
Docker 会自动为你按照挂载目录进行目录的创建。
=========================================================================
查看挂载目录信息---------docker inspect 91a #91a 为容器id
=========================================================================
一,Dockerfile及镜像制作实践。
背景:docker pull指令可以从远程仓库下载我们需要的一些镜像(image),
      假如镜像仓库中没有我们需要的镜像,那么我们自己制作镜像。
二,制作JDK镜像。
准备工作:
1.centos:7镜像,(所有的镜像文件创建时都需要有一个空的centos镜像,
就类似通过一个空的光盘或u盘创建一个系统启动盘是一样的) 。
2.jdk压缩包 jdk-8u51-linux-x64.tar.gz,基于此压缩包,制作jdk镜像。
创建Dockerfile文件。
第一步:进入jdk-8u51-linux-x64.tar.gz文件所在目录,基于vim创建Dockerfile文件,
vim  Dockerfile
第二步:按键盘上的"i"进入编辑模式
第三步:FROM centos:7
ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker
ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \
    PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
CMD ['bash']
第四步:拷贝完成,按ESC进入命令行模式(又叫最后一行模式)
第五步:然后按shift+冒号,输入wq保存退出.
3.创建JDK镜像文件。
在Dockerfile所在目录执行docker build指令
docker build -t jdk:8 .  #不要丢掉这里的点,-t表示镜像标识(镜像名),是tag单词的缩写.
注意末尾的点,表示构建过程中从当前目录寻找文件,jdk:8为我们创建的镜像名。
4.运行JDK镜像(image)文件
在宿主机中执行如下指令,启动JDK容器,
docker run -it jdk:8 bash
进入容器以后,可以通过echo $PATH查看环境变量,并可以通过java –version查看JDK版本信息。
=========================================================================
一,制作Sentinel镜像。
准备工作:
1.centos:7镜像(课前资料中的)
2.jdk-8u51-linux-x64.tar.gz(可以从课前资料获取)
3.sentinel-dashboard-1.8.0.jar
将jdk-8u51-linux-x64.tar.gz,sentinel-dashboard-1.8.0.jar放在/root/setup/sentinel目录。
=========================================================================
二,构建Sentinel镜像。
第一步:在sentinel所在目录创建Dockerfile文件,
第二步:并添加如下内容FROM centos:7。
ADD jdk-8u51-linux-x64.tar.gz  /usr/local/
ADD sentinel-dashboard-1.8.0.jar  /usr/local/
ENV JAVA_HOME=/usr/local/jdk1.8.0_51 \
    PATH=/usr/local/jdk1.8.0_51/bin:$PATH
EXPOSE 8080
ENTRYPOINT ["java","-jar","/usr/local/sentinel-dashboard-1.8.0.jar"]
注意:EXPOSE表示对外暴露的服务端口,
     ENTRYPOINT中写的是你容器启动时候要执行的指令.
第三步:使用Dockerfile构建镜像。
docker build -t  sentinel:8 .  #不要丢掉这里的点
第四步:后台运行sentinel容器
docker run -d --name sentinel8181 -p 8181:8080 sentinel:8 
#-d 表示后台运行,-p用于指定端口映射,sentinel:8为镜像文件名
第五步::查看sentinel容器
docker ps
第六步:访问sentinel服务
=========================================================================

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值