当前位置:网站首页 > R语言数据分析 > 正文

docker版本(docker版本号)



目录

1、 什么是Docker

2、安装Docker

CtenOS7:

win

ubuntu

3、Docker架构

4、配置Docker镜像加速器

5、Docker服务相关命令

6、Docker 镜像相关的命令

7、Docker 容器相关命令(重要)

8、Docker容器的数据卷(共享文件夹)

8.1 思考

8.2 数据卷

8.2.1 配置数据卷

 8.2.2 数据卷容器

9、Docker应用部署

9.1 Mysql 部署

需求

实现步骤

注意:

1、搜索Mysql 镜像

2、拉起Mysql镜像

3、创建容器 包含内容有mysql:5.6

4、查看docker容器中是否存在mysql

9.2 Tomcat 部署

需求:

实现步骤

9.3 Nginx 部署

需求:

实现步骤:

9.4 Redis 部署

需求:

实现步骤:

10、DockerFile

docker 镜像原理

操作系统组成部分:

制作镜像(重点)

1、容器转为镜像

2、dockerfile

3、定义dockerfile 发布springboot项目

3、自定义ubuntu镜像

11、Docker 服务编排

1、服务编排概念

2、Docker Compose概述

2.1 安装 Docker Compose

2.2  卸载docker Compose

2.3 使用dockercompose 编排nginx+springboot 项目

12、Docker 私有仓库

1、搭建私有仓库

​编辑

2、上传镜像到私有仓库

3、从私有仓库拉取镜像

13、Docker 相关概念

docker容器虚拟化与传统虚拟机比较


  • Docker是一个开源的应用容器引擎;
  • 诞生于2013年初,基于Go语言实现,doCloud公司出品(改名为Docker Inc);
  • Docker可以让开者打包他们的运用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上。
  • 容器时完全使用沙箱机制,相互隔离;
  • 容器性能开销极低。
  • Docker从17.03版本之后分为CE(CommunityEdition:社区版(免费))和EE(Enterprise Edition:企业版(收费))

小结:docker是一种容器技术,解决软件跨环境迁移问题


Docker可以运行在MAC,Windows,CtenOS,UBUNTU等操作系统上。官网

Docker: Accelerated, Containerized Application Development

 
    

安装完成即可看到版本就安装成功

当下载失败就继续执行

 
    

下载路径:Index of win/static/stable/x86_64/

1、安装docker:sudo apt-get install -y docker.io

2、启动docker服务:systemctl start docker

3、设置开机启动:systemctl enable docker

4、查看docker状态:systemctl status docker

5、停止docker服务:systemctl stop docker

6、查看docker版本:docker version


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

默认情况下,将来熊docker hub(https://hub.docker.com/)上下载docker镜像,太慢。一般都会配置镜像加速器。

  • USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)需要到相应的配置文件中更改其配置
  • 阿里云:(登陆阿里云,会生成一个自己独有的加速器地址,直接黏贴即可)
  • 腾讯云: 与阿里云类似
  • 网易云: 与阿里云类似

配置:

将其命令中的代码都复制过来直接执行即可;

如果使用的是中科大镜像加速镜像那么就将daemon.json 中的

替换一下即可;

 
      


  • 启动docker服务:
     
  • 停止docker服务:
     
  • 重启docker服务:
     
  • 查看docker服务状态:
     
  • 开机启动docker服务:
     


  • 查看镜像:
     
  • 搜索镜像:
     
  • 拉起镜像:(下载)
     
  • 删除镜像:
  •  

通过docker 下载软件可以去官网查看,默认下载是最新版本

Docker Hub

版本信息

在下载时需要软件名和版本号之间用 : 隔开

docker  pull  redis:5.0

 official 下 [OK] 表示是官方版本


  • 查看容器:
     
  • 创建容器: 表示已经进入了 容器;
     
  • 启动容器:
     
  • 停止容器:
     
  • 删除容器:
     
  • 查看容器信息: 
     
  • 退出容器
     
  •  进入容器:
     




查看docker容器配置文件:

 
         

  • Docker  容器删除后,在容器中产生的数据还在吗?
  • Docker 容器和外部及其可以直接交换文件吗?
  • 容器之间相互进行数据交互?

1、外部及其与容器之间是不互通的,但是外部及其与宿主机器互通

2、容器之间交换数据

 

  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 一个数据卷可以被多个容器同时挂载
  • 一个容器也可以被挂在多个数据卷

作用:

  • 容器数据持久化
  • 外部及其和容器间接通信
  • 容器之间数据交换

8.2.1 配置数据卷

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

docker run  ..  -v  宿主机目录(文件):  容器内目录(文件)

注意事项:

  • 目录必须是绝对路劲
  • 如果目录不存在,会自动创建
  • 可以挂在多个数据卷

 

 8.2.2 数据卷容器
 

所容器进行数据交换:

        1、多个容器挂在同一个数据卷

        2、数据卷容器

配置数据卷容器

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

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

3、将创建完成的容器绑定到数据卷中

 
         

数据卷:

1、数据卷概念:

        宿主机的一个目录或文件

2、数据卷作用

        容器数据持久化

        客户端和容器数据交换

        容器间数据交换

3、数据卷容器

        创建一个容器,挂在一个木兰路,让其他容器继承自该容器(--volume-from)

        通过简单方式实现数据卷配置


需求

在docker容器中部署Mysql,并通过外部的Mysql客户端操作Mysql数据库

实现步骤

  • 搜索Mysql镜像
  • 拉起mysql镜像
  • 创建容器
  • 操作容器中的Mysql

注意:

  • 容器内的网络服务和外部机器不能直接通信
  • 外部机器和宿主机可以直接通信
  • 宿主机和容器可以直接通信
  • 当容器中的网络服务需要被外部机器访问时,可以将容器中提供服务的端口映射到宿主机的端口上。外部术器访问宿主机的该端口,从而间接访问容器的服务。
  • 这种操作称为:端口映射

1、搜索Mysql 镜像

 
          

2、拉起Mysql镜像

 
          

3、创建容器 包含内容有mysql:5.6

 
          

参数说明

-p 3307:3306 :将容器 3306端口映射到宿主机的 3307端口

-v $PWD/config:/etc/mysql/conf.d:将主机当前目录下的 config/mysql.conf 挂载到容器的/etc/mysql/my.conf。配置目录

-v $PWD/logs:/logs :将主机当前目录下的logs目录挂载到容器的/logs。的日志目录

-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂在到容器的:/var/lib/mysql 。数据目录

-e MYSQL_ROOT_PASSWORD= :mysql 初始化root用户密码

4、查看docker容器中是否存在mysql

第一步:就去容器

第二步:链接mysql

mysql -uroot -p

第三部:测试外部链接mysql

容器和宿主机之间的端口映射是:3306-->3307

需求:

在docker容器中部署tomcat,通过外部机器访问Tomcat部署项目。

实现步骤

1)搜索Tomcat镜像

 
          

2)拉取Tomcat镜像

 
          

3)创建容器

 
          

 参数说明:

        -p 8080:8080:将日期的8080端口映射到主机的8080 端口

        -v $PWD:/user/local/tomcat/webapps:将主机中当前目录挂在到容器的webapps

 进入c_tomcat:

 
          

4)部署项目

在 tomcat 目录下穿件一个index.html 文件在里面写入内容即可查看

5)测试访问

http://127.0.0.1:8080/index.html

需求:

        在docker 容器中部署Nginx,并通过外部及其访问Nginx;

实现步骤:

1)搜索Nginx镜像

 
          

2)拉取Nginx镜像

 
          

3)创建容器

 
          

 
          
 
          

参数说明:

        -p 81:80:将容器的80 单口映射到主机的81端口

        -v $PWD/conf/nginx.conf/etc/nginx/nginx.conf:将主机当前目录下的/conf/nginx.conf挂在到容器的:/etc/ngingx/nginx.conf。配置目录

        -v  $PWD/logs:/var/log/nginx:将主机当前目录下的logs目录挂在到容器的/var/log/nginx。日志目录

4)测试访问

在nginx目录下的html目录下创建index.html文件

需求:

在docker容器中部署Redis,并通过外部及其访问Redis

实现步骤:

1)搜索redis镜像

 
          

2)拉取redis镜像

 
          

3)创建容器

 
          

参数说明:

        6380:6379:将容器内6379映射到外部机器的6380

4)访问容器

 
          


docker镜像本质是什么?

docker操作系统的ISO镜像为什么只有200MB,而一个centos操作系统ios 文件需要几个G?

docker中一个tomcat镜像为什么有500MB,而一个tomcat安装包只有70MB?

操作系统组成部分:

  • 进程调度子系统
  • 进程通信子系统
  • 内存管理子系统
  • 设备管理子系统
  • 网络通信子系统
  • 网络通信子系统
  • 作业控制子系统

linux 文件系统由bootfs 和rootfs两部分组成

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

        rootfs:root 文件系统,包含的就是典型Linux系统中的/div,/proc,/bin,/etc等表中目录和文件

        不同的linux发行版,bootfs基本一样,二rootfs不同,如ubuntu,contos等

docker镜像是由特殊的文件系统叠加而成

最底端是bootfs,并使用宿主机的bootfs

第二层是root文件系统rootfs,称为base image

然后再往上可以叠加其他的镜像文件

统—文件系统(Union File System)技术能够将不同的层整合成一个文件系统,为这些层提供了一个统一的视角,这样就隐藏了多层的存在,在用户的角度看来,只存在一个文件系统。

一个镜像可以放在另一个镜像的上面。位于下面的镜像称为父镜像,最底部的镜像成为基础镜像。

当从一个镜像启动容器时,Docker会在最顶层加载一个读写文件系统作为容器

docker镜像的本质是什么?

是一个分层的文件系统

docker操作系统的ISO镜像为什么只有200MB,而一个centos操作系统ios 文件需要几个G?

Contos的ISO文件包含bootfs和rootfs,而docker的contos 镜像复用操作系统boofts,只有rootfs和其他镜像层

docker中一个tomcat镜像为什么有500MB,而一个tomcat安装包只有70MB?

由于docker中镜像是分层的,tomcat虽然只有70MB,但他需要依赖于父镜像和基础镜像,所有整体个对外暴露的tomcat镜像大小500多MB

docker如何制作?

1、容器转为镜像

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

 
           

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

 

 
           

docker   load  -i   压缩文件名称

 
           

 
           

2、dockerfile

Dockerfile概念

  • dockerfile是一个文本文件
  • 包含了一条条的指令
  • 每一条指令构建一层,基于基础镜像,最终构建出一个新的镜像
  • 对于开发人员:可以为开发团队提供一个完全一直的开发环境
  • 对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了
  • 对于运维人员:在部署时,可以实现应用的无缝移植

Docker网址:https://hub.docker.com/

 
           
关键字 作用 备注 FROM 指定父镜像 指定dockerfile基于那个image构建 MAINTAINER 作者信息 用来标明这个dockerfile 谁写的 LABEL 标签 用来标明dockerfile 的标签可以使用label代替Maintainer最终都是在docker image基本信息中可以查看 RUN 执行命令容器启动执行 执行一段命令默认是/bin/sh格式:RUNcommd 或者RUN['command',"param1",“param2”] CMD 容器启动口令 提供启动容器时候的默认命令和ENTRYPONT配合使用,格式CMD command param1  param2 或者 CMD ["command","param1","param2"] ENTRYPOINT 入口 一般在制作一些执行就关闭的容器中会使用 COPY 复制文件 build的时候复制文件到image中 ADD 添加文件 build 的时候添加文件到image中不仅仅局限于当前build 上下文可以来源于远程服务 ENV 环境变量 指定build时环境变量可以在启动的容器的时候通过-e覆盖格式ENV  name=value ARG 构建参数 构建参数 只在构建的时候使用的参数  如果有ENV那么ENV的相同名字的值始终覆盖arg的参数 VOLUME 定义外部可以挂在的数据卷 指定build 的image那些目录可以启动的时候挂载到文件系统中容器的时候使用-v绑定格式VOLUME["目录"] EXPOSE 暴露端口 定义容器运行的时候监听的端口启动容器的使用-p来绑定暴露的端口  格式 EXPOSE  8080 或者 EXPOSE 8080/udp WORKDIR 工作目录 指定容器内部的工作目录  如果没有创建则自动创建 如果指定/使用的是绝对地址 如果不是/开头那么是在上一条workdir的路劲的相对路径 USER 指定执行用户 指定build或者启动的时候 用户在RUN CMD ENTRYPONT 执行的时候的用户 HEALTHCHECK 健康检查 指定检测当前容器的健康检测的命令  基本上没用  因为很多时候  应用本身有健康检测机制 ONBUILD 触发器 当存在ONBUILD关键字的镜像作为基础镜像的时候  当执行FROM 完成之后  会执行ONBUILD 的命令但是不影响当前镜像 用处不怎么打 STOPSIGNAL 发送信号量到宿主机 该STOPSIGNAL指令设置将发送到容器的系统调用信号以退出。 SHELL 指定执行脚本的shell 指定RUN  COMENTRYPOINT 执行命令的时候使用的shell

3、定义dockerfile 发布springboot项目

将springboot项目打包

找到jar包

 

 实现步骤:

下载java:8

 
            

1、定义父镜像:FROM java8

2、定义作者:MAINTAINER  itheima<>

3、将jar包添加到容器:ADD   springboot.jar   app.jar

4、定义容器启动执行的命令:CMD java -jar app.jar

 
            

5、通过dockerfile构造镜像:docker bulid -f  dockerfile 文件镜像名称:版本

 
            

 构建完成

 启动 应用

 
            

 启动成功,访问

 java接口

3、自定义ubuntu镜像

需求:

自定义ubuntu镜像。要求

1、默认登陆路径为/usr

2、可以使用vim

 
            

实现步骤:

1、定义父镜像:FROM  ubuntu:版本号

2、定义作者信息:        maintainer   xidida<xidida@@.com>

3、执行安装vim命令:RUN  apt update, apt install -y  vim

4、定义容器启动执行的命令:CMD  /bin/bash

 
            

 

 

  工具镜像创建容器:

 
            

 


微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大。

  • 要从Dockerfile build image或者去dockerhub拉取image
  • 要创建多个container
  • 要管理这些container (启动停止删除)

服务编排:按照一定的业务规则批量管理容器

 

Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止。使用步骤:

  • 利用Dockerfile定义运行环境镜像
  • 使用docker-compose.yml定义组成应用的各服务
  • 运行docker-composeup启动应用

2.1 安装 Docker Compose

Releases · docker/compose · GitHub

 
             

2.2  卸载docker Compose

 
             

2.3 使用dockercompose 编排nginx+springboot 项目

1、创建docker-compose目录

 
             

2、编写docker-compose.yml 文件

 
             

3、创建https://blog.csdn.net/weixin_/article/details/nginx/conf.d目录

 
             

4、在https://blog.csdn.net/weixin_/article/details/nginx/conf.d目录下编写 xidida.conf 文件

 
             

Docker官方的Dockerhub (https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以上面拉取镜像到本地,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么我们就需要搭建自己的私有仓库来存储和管理自己的镜像。

 
              

  

 http://192.168.183.138:5000/v2/_catalog

 

 

 

 

 
              

 

 在打完标记后删除最好按照名字删除,如果使用id 删除则会两个都删除

 

上传完成可以查看:

 
              


容器就是将软件打包成标准化单元,以用于开发、交付和部署。

  • 容器镜像是轻量的、可执行的独立软件包,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。
  • 容器化软件在任何环境中都能够始终如一地运行。
  • 容器赋予了软件独立性,使其免受外在环境差异的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。

相同:

  • 容器和虚拟机具有相似的资源隔离和分配优势

不同:

  • 容器虚拟化的是操作系统,虚拟机虚拟化的是硬件
  • 传统虚拟机可以运行不同的操作系统,容器只能运行同一类型操作系统

 

 

 

 

到此这篇docker版本(docker版本号)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • argparse用法(argument用法和搭配 作业帮)2025-06-22 15:36:06
  • tldraw白板(traceboard白板怎么打开)2025-06-22 15:36:06
  • grid布局是什么(grid 布局)2025-06-22 15:36:06
  • codeformer手机版下载教程(codeorg下载)2025-06-22 15:36:06
  • seater英语怎么读(seatbelts英语怎么读)2025-06-22 15:36:06
  • resnet1(resnet18和resnet50区别)2025-06-22 15:36:06
  • xdr是什么缩写(xdr什么意思)2025-06-22 15:36:06
  • airpods总是自动断开连接(airpods总是自动断开连接又自动接)2025-06-22 15:36:06
  • xivier怎么读(wester怎么读)2025-06-22 15:36:06
  • oracle教程入门(oracle教程 csdn)2025-06-22 15:36:06
  • 全屏图片