docker基础学习一

Posted jiebba

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker基础学习一相关的知识,希望对你有一定的参考价值。

 

 

  docker 介绍

  

  1、docker 是什么 ?

  docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖到一个可移植的容器中。

  然后发布到任何一个 linux 系统上面。

 

  特点:

  docker 容器启动和停止都很快,直接在宿主中可以完成。

  docker 容器占用的系统资源少,一台宿主可以运行很多容器

  docker 操纵方便,简单易学习

  docker 可以通过 dockerfile 配置文件自动创建和部署。

  docker 容器也是沙箱机制的,相互完全隔离

 

  三大核心概念 : 镜像,容器,仓库

 

  镜像

  docker 镜像类似于虚拟机镜像,也可以理解为一个面向 docker 引擎的只读模版。

  镜像是创建 docker 容器的基础,镜像可以是一个系统( ubuntu镜像 ),也可以是一个应用程序( mysql 镜像 )。

 

  获取镜像

docker pull  name[:tag]

  开发者可以通过 docker pull 来获取对应的镜像。

 

  查看镜像信息

docker images

  列出所有的镜像列表。

  展示镜像的概要信息,了解当前所有的镜像。

 

  查看具体镜像信息

docker inspect imageID

  获取某一个镜像的详细信息。

 

  搜索镜像

docker search  name

  在仓库中查询某一个镜像。

 

  删除镜像

docker rmi name

  删除某一个镜像。

 

  创建镜像

  创建镜像有三种方法:基于已有镜像的容器创建、基于本地模版导入、基于 dockerfile 创建

  

  基础已有镜像容器创建

docker commit [options]  containerId [imageName[:tag]]

  创建一个容器:

  options :a ( 作者名称 )、m( 提交信息 )、p( 创建时候暂停 )

  containerId :容器的id

  imageName[:tag] : 名称和标签

 

  直接导入模版文件创建镜像

docker import  tpl

  

  存出和载入镜像

  存储可以将镜像保存为本地文件

  载入将本地文件导入为一个本地镜像

 

  上传镜像

docker push name[:tag]

  创建本地镜像到仓库中。

 

 

 

 

  容器

  docker 容器类似一个轻量级的沙箱,docker 利用容器来隔离和运行应用。

  容器是通过镜像创建实例来的,在宿主中可以实现启动、停止、删除等操作,且容器相互隔离不受影响。

 

  创建容器

docker create name[:tag]

  创建了容器但是没有启动它。

  可以通过 docker start name 来启动容器

 

  新建并启动容器

docker run  name

  相当于:docker create  -->   docker start 

  过程:

  1、检查是否存在本地镜像,不存在到仓库中获取

  2、利用容器创建并启动容器

  3、分配一个文件系统,并在只读的镜像层外面挂在一层可读写层

  4、从宿主的网桥中桥接一个虚拟接口到容器中

  5、从地址池配置一个 IP 地址给容器

  6、执行指定到应用程序

  7、执行完毕

 

  参数:

  t :分配一个伪终端

  i :标准的输入

  d : 后台运行

  

  进入容器

docker exec -it  containerID /bin/bash

  nesnter 工具

  需要下载工具,并且链接 docker 

  

  删除容器

docker rm containerID

  

  docker 仓库

  docker 仓库类似于代码仓库,是 docker 集中存放镜像文件的位置。

 

 

  数据卷

  

  创建数据卷

docker run -d -p --name  -v /container/dir:/local/dir  imageName

  

  -v : 创建一个数据卷。

  一个宿主目录和容器目录的映射。

 

 

  创建数据卷容器

docker run-it -v /local/dbdata  --name con1  ubuntu

技术分享图片

 

  共享数据卷容器

docker run -it --volumes-from con1 --name con2 ubuntu

  

   con1 和 con2  同时共享 /dbdata 目录。

 

 

  利用数据卷容器迁移数据

   1、备份数据

docker run --volumes-from dbdata -v $(pwd):/backup --name worker ubuntu 

  创建一个容器且挂在到 dbdata 上面,-v 创建数据卷

tar cvf  /backup/backup.tar  /dbdata

  打包数据tar

 

  2、恢复数据

tar xvf /backup/backup.tar

  解压数据

 

 

 

  端口映射

docker run  -p 5000:30000  name  image

  p : 将本地端口映射到容器端口上

 

 

Dockerfile 创建镜像 

 

  dockerfile 是一个文本格式的配置文件,可以快速的创建自定义镜像。

 

  基本结构

  dockerfile 是一行行命令语句组成。

  一般分为四个部分:

  基本镜像信息、维护者信息、镜像操作者、容器启动指令

 

   配置

   1、FROM  <image[:tag]>

  指定配置的镜像

 

  2、MAINTAINER  <name>

  作者名称

 

  3、RUN  <command>

  在 shell 运行命令,即 /bin/bash  -c

 

  4、CMD  [] <command>

  执行命令,只会执行最后一条

 

  5、EXPOSE  ports

  暴漏执行端口,可外部访问或者 -p 映射

  

  6、ENV  <key>  <value>

  指定环境变量,在配置全局可以使用

 

  7、ADD/COPY  <src> <dest>

  指定本地的链接到容器目录

 

  8、ENTRYTRYOINT  <command>

  容器启动后,执行到命令

 

  9、VOLUME ["data"]

  创建一个主机或者其他数据卷挂载点

 

  10、USER daemon

  指定用户名称

 

  创建镜像

  编写完成 dockerfile 文件之后,可以用 docker build 创建镜像。 

 

以上是关于docker基础学习一的主要内容,如果未能解决你的问题,请参考以下文章

Docker学习笔记

新一代流式数据湖平台 Apache Hudi学习笔记 - 基础知识&定义

新一代流式数据湖平台 Apache Hudi学习笔记 - 基础知识&定义

Docker 学习笔记 Docker 基础操作实,Docker仓库数据卷,网络基础学习

DOM探索之基础详解——学习笔记

Java 基础学习总结(200)—— GraalVM 为什么能被称为下一代虚拟机