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 创建镜像。
原文地址:https://www.cnblogs.com/jiebba/p/10101799.html