一、初始Docker
Docker概念:
1)Docker 是一个开源的应用容器引擎
2)诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc)
3)Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。
4)容器是完全使用沙箱机制,相互隔离
5)容器性能开销极低。
6)Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)
Docker架构:
1)镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
2)容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
3)仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
二、Docker常用命令
1)启动docker服务:
systemctl start docker
2)停止docker服务:
systemctl stop docker
3)重启docker服务:
systemctl restart docker
4)查看docker服务状态:
systemctl status docker
5)设置开机启动docker服务:
systemctl enable docker
6)查看镜像: 查看本地所有的镜像
docker images
docker images –q # 查看所用镜像的id
7)搜索镜像:从网络中查找需要的镜像
docker search 镜像名称
8)拉取镜像:从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本。 如果不知道镜像版本,可以去docker hub 搜索对应镜像查看。
docker pull 镜像名称
9)删除镜像: 删除本地镜像
docker rmi 镜像id # 删除指定本地镜像
docker rmi `docker images -q` # 删除所有本地镜像
10)查看容器
docker ps # 查看正在运行的容器
docker ps –a # 查看所有容器
11)创建并启动容器
docker run 参数
参数说明:
-i:保持容器运行。通常与 -t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。
-it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
–name:为创建的容器命名。
12)进入容器
docker exec 参数 # 退出容器,容器不会关闭
13)停止容器
docker stop 容器名称
14)启动容器
docker start 容器名称
15)删除容器:如果容器是运行状态则删除失败,需要停止容器才能删除
docker rm 容器名称
16)查看容器信息
docker inspect 容器名称
三、Docker容器数据卷
1、配置数据卷:
1)创建启动容器时,使用 –v 参数 设置数据卷
docker run ... –v 宿主机目录(文件):容器内目录(文件) ..
注意事项:
- 目录必须是绝对路径
- 如果目录不存在,会自动创建
- 可以挂载多个数据卷
2、配置数据卷容器:
1)创建启动c3数据卷容器,使用 –v 参数 设置数据卷
docker run –it --name=c3 –v /volume centos:7 /bin/bash
2)创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷
docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash
3、数据卷概念:
宿主机的一个目录或文件
4、数据卷作用:
1)容器数据持久化
2)客户端和容器数据交换
3)容器间数据交换
5、数据卷容器
1)创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )。
2)通过简单方式实现数据卷配置