目录
- 一、docker概念
- 二、docker安装(centos7)
- 三、docker架构
- 3.1 镜像image
- 3.2 容器container
- 四、配置docker镜像加速器
- 五、docker命令
- 5.1 docker服务命令
- 5.2 docker镜像命令
- 5.3 docker容器命令
- 六、docker容器的数据卷
- 6.1 容器卷概念及作用
- 6.2 配置数据卷
- 6.3 挂载示例
- 6.4 数据卷容器
- 6.5 配置数据卷容器
一、docker概念
- 1.docker是一个开源的应用容器引擎
- 2.诞生于2013年初,基于GO语言实现,dotCloud公司出品(后改名为Docker Inc)
- 3.docker可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,发布到任何流行的linux机器上
- 4.容器是完全使用沙箱机制,相互隔离
- 5.容器性能开销极低
- 6.docker从17.3版本之后分为CE(Community Edition:社区版)和EE(Enterprise Editon:企业版)
- 7.docker可以运行在mac、window、centos、ubuntu等操作系统
二、docker安装(centos7)
- 1.yum包更新到最新
yum update
- 2.安装需要的软件包yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
- 3.设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 4.安装docker
yum install -y docker-ce
- 5.查看docker版本,验证是否成功
docker -v
三、docker架构
3.1 镜像image
- 1.docker镜像,相当于是一个root文件系统
- 2.比如官方镜像ubuntu:16.04就包含了完整的一套ubuntu16.04最小
3.2 容器container
- 1.镜像和容器的关系,就像面向对象程序设计中的类和对象,镜像是静态的定义,容器是镜像运行时的实体
- 2.容器可以被创建、启动、停止、删除、暂停等
四、配置docker镜像加速器
-
1.默认情况下,从docker hub(https://hub.docker.com)下载docker镜像,速度很慢,一般会配置镜像加速器
-
2.USTC:中科大镜像加速器(https://docker.mirrors.ustc.edu.cn)
-
3.阿里云:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,将修改代码拷贝到linux中执行即可
-
4.网易云
-
5.腾讯云
五、docker命令
5.1 docker服务命令
- 1.启动docker服务
sudo systemctl start docker
- 2.停止docker服务
sudo systemctl stop docker
- 3.重启docker服务
sudo systemctl restart docker
- 4.查看docker服务状态
systemctl status docker
- 5.设置开机启动docker服务
systemctl enable docker
5.2 docker镜像命令
- 1.查看镜像
docker images
//REPOSITORY:仓库,镜像的名称
//TAG:版本,latest最新版本
//IMAGE ID:镜像id
//CREATED:创建时间
//SIZE:大小
- 2.搜索镜像
// 搜索redis镜像
docker search redis
- 3.拉取镜像
// 拉取redis镜像
docker pull redis 默认下载最新版本的redis镜像
docker pull redis:5.0 下载5.0版本的redis
- 4.删除镜像
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 7614ae9453d1 19 months ago 113MB
docker rmi 7614ae9453d1 // 按镜像id删除
docker rmi redis:5.0 // 按版本号删除
- 5.查看所有镜像的id
docker images -q
- 6.删除所有镜像
docker rmi `docker images -q`
5.3 docker容器命令
- 1.查看容器
// 查看正在运行的容器
docker ps
// 查看所有容器
docker ps -a
- 2.创建容器
docker run 参数
-i:保持容器运行。通常与-t同时使用。加入t这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
-t::为容器重新分配一个伪输入终端,通常与-i同时使用。
-d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭
-it创建的容器一般称为交互式容器
-id创建的容器一般称为守护式容器
--name:为创建的容器命名
- 3.进入容器
// 进入容器名为mysqlserve容器
docker exec -it mysqlserve /bin/bash
// 退出容器
exit;
- 4.启动容器
// 启动指定容器名的容器
docker start mysqlserve
- 5.停止容器
// 停止指定容器名的容器
docker stop mysqlserve
- 6.删除容器
// 删除指定名字的容器
docker rm mysqlserve
// 删除指定id的容器
docker rm 43a987902e8f
// 删除所有容器
docker rm `docker ps -aq`
// 正在运行的容器无法删除,需要停止容器才能删除, -f 强制删除
docker rm mysqlserve -f
- 7.查看容器信息
docker inspect mysqlserve
- 8.查看容器id
docker ps -aq
六、docker容器的数据卷
6.1 容器卷概念及作用
- 1. 数据卷:是宿主机中的一个目录或文件
- 2.当容器目录和数据卷目录绑定后,对方的修改会立即同步
- 3.一个数据卷可以被多个容器同时挂载
- 4.一个容器可以被挂载多个数据卷
6.2 配置数据卷
- 1.创建启动容器时,使用-v参数来设置数据卷
- 2.docker run … -v 宿主机目录(文件): 容器内目录(文件)…
- 3.目录必须是绝对路径
- 4.如果目录不存在,会自动创建
- 5.可以挂载多个数据卷
- 6.挂载的数据会持久化,即使容器销毁,挂载的目录或文件还会存在
6.3 挂载示例
docker run -it --name=容器名 -v ~/data1:/root/data1 -v /root/data2:/root/data2 centos:7
6.4 数据卷容器
- 1.多容器进行数据交换
- 2.多个容器挂载同一个数据卷
6.5 配置数据卷容器
- 1.创建启动c3数据卷容器,使用-v参数 设置数据卷
docker run -it --name=c3 -v /volume centos:7 /bin/bash
- 2.创建启动c1和c2容器,使用–volumes-from参数设置数据卷
docker run -it --name=c1 --volumns-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumns-from c3 centos:7 /bin/bash