为什么有 Docker
- 将一整套环境打包封装成镜像,无需反复配置环境,解决环境带来的种种问题。
- Docker 容器间是过程隔离的,谁也不会影响谁。
- 相较于传统的 VM 虚拟化办法,Docker 的益处是启动速度快,资源利用率高,性能开销小。
Docker 中的概念
- 镜像(Image):Docker 镜像(Image),就相当于是一个 ISO 文件系统。比方 Centos 官网镜像 CentOS-7-x86_64-DVD-2009.iso 就蕴含一个残缺的 centos 操作系统环境。
- 容器(Container):镜像(Image)和容器(Container)的关系,就像是 java 面向对象程序设计中的类和实例一样,镜像是类的定义,容器是镜像运行时的实例。容器能够被创立、启动、进行、删除、暂停等。
- 仓库(Repository):仓库可看成一个代码控制中心,用来保留镜像。
CentOS 7 装置 Dokcer
-
设置 Docker 镜像源
yum install -y yum-utils yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
装置 Docker 社区版本
yum install docker-ce docker-ce-cli containerd.io
-
启动 Docker
systemctl start docker
-
常规 helloworld: docker run hello-world
Dokcer 常用命令
- 镜像命令
docker images // 列出本地主机上的所有镜像
docker search【镜像名】// 搜寻镜像
docker pull【镜像名】// 拉取镜像
docker rmi -f【镜像名】// 删除单个镜像
docker rmi -f【镜像名 1 镜像名 2】// 删除多个镜像
docker rmi -f $(docker image -q) // 删除全副镜像
- 容器命令
docker run -it【镜像名】// 以交互模式启动容器
docker run -d【镜像名】// 当前台模式启动容器
docker run -d -P 随机端口映射,容器外部端口随机映射到主机的端口
docker run -d -p 指定端口映射,格局为主机端口: 容器端口
docker ps // 列出以后正在运行的容器
exit // 容器进行且退出
ctrl+p+q // 容器不进行退出
docker start【容器 id/ 容器名】//(退出容器后)启动容器
docker restart【容器 id/ 容器名】// 重启容器
docker stop【容器 id/ 容器名】// 进行容器
docker kill【容器 id/ 容器名】// 强制进行容器
docker rm【容器 id】// 删除容器
docker rm -f $(docker ps -a -q)/ / 删除全副容器
docker ps -a -q | xargs docker rm // 删除全副容器
docker attach【容器 id】// 以交互模式进入正在运行的容器
docker exec -it【容器 id】【bashshell】// 可间接运行命令失去后果跳过进入容器的步骤
docker commit【容器 id】【镜像名: 版本号】// 从容器创立一个新的镜像
更多的命令:# Docker 命令大全
Dokcer 容器数据卷
容器数据卷能够用来存储 Docker 利用的数据,也能够用来在 Docker 容器间进行数据共享。
-
应用命令增加容器数据卷
docker run -d -v 宿主机文件绝对路径: 容器文件绝对路径【镜像名】
- 应用 DockerFile 增加容器数据卷
通过 DockerFile 创立的带有 VOLUME 的镜像,而后创立容器会主动将 VOLUME 的目录挂载到宿主机默认目录
VOLUME["dataVol1","dataVol2"]
-
从另一个容器当中挂载容器中曾经创立好的数据卷
docker run -d --volumes from【容器名】【镜像名】
DokcerFile
DockerFile 是用来构建 Docker 镜像的构建文件,是由一系列命令和参数形成的脚本
docker build -f【dockerFile 门路】-t【镜像名】:版本号 .
相干指令:# Docker Dockerfile
应用 Docker 装置 redis
-
拉镜像
docker pull redis:3.2
2. 新建本地 redis.conf,目标是启动时能够自定义这个配置文件的内容映射到 docker 中 redis 的配置文件
mkdir -p /opt/redis/conf cd /opt/redis/conf touch redis.conf
设置明码
-
启动容器
docker run -p 6379:6379 -v /opt/redis/data:/data -v /opt/redis/conf/redis.conf:/etc/redis/redis.conf -d redis:3.2 redis-server /etc/redis/redis.conf --appendonly yes
- 连贯 redis