docker基础学习

 

 

  docker 介绍

  

  一、docker 是什么 ?

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

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

 

  特色:

  docker 容器启动和中止都很快,直接在宿主中能够完成。mysql

  docker 容器占用的系统资源少,一台宿主能够运行不少容器linux

  docker 操纵方便,简单易学习sql

  docker 能够经过 dockerfile 配置文件自动建立和部署。docker

  docker 容器也是沙箱机制的,相互彻底隔离shell

 

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

 

  镜像

  docker 镜像相似于虚拟机镜像,也能够理解为一个面向 docker 引擎的只读模版。ubuntu

  镜像是建立 docker 容器的基础,镜像能够是一个系统( ubuntu镜像 ),也能够是一个应用程序( mysql 镜像 )。bash

 

  获取镜像

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 

  过程:

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

  二、利用容器建立并启动容器

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

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

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

  六、执行指定到应用程序

  七、执行完毕

 

  参数:

  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 目录。

 

 

  利用数据卷容器迁移数据

   一、备份数据

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

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

tar cvf  /backup/backup.tar  /dbdata

  打包数据tar

 

  二、恢复数据

tar xvf /backup/backup.tar

  解压数据

 

 

 

  端口映射

docker run  -p 5000:30000  name  image

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

 

 

Dockerfile 建立镜像 

 

  dockerfile 是一个文本格式的配置文件,能够快速的建立自定义镜像。

 

  基本结构

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

  通常分为四个部分:

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

 

   配置

   一、FROM  <image[:tag]>

  指定配置的镜像

 

  二、MAINTAINER  <name>

  做者名称

 

  三、RUN  <command>

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

 

  四、CMD  [] <command>

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

 

  五、EXPOSE  ports

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

  

  六、ENV  <key>  <value>

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

 

  七、ADD/COPY  <src> <dest>

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

 

  八、ENTRYTRYOINT  <command>

  容器启动后,执行到命令

 

  九、VOLUME ["data"]

  建立一个主机或者其余数据卷挂载点

 

  十、USER daemon

  指定用户名称

 

  建立镜像

  编写完成 dockerfile 文件以后,能够用 docker build 建立镜像。 

相关文章
相关标签/搜索