文章目录
Docker是一种容器技术,它能解决软件跨环境迁移的问题
https://www.bilibili.com/video/BV1CJ411T7BK
Docker命令
Docker服务相关命令
# 启动docker服务
systemctl start docker
# 停止docker服务
systemctl stop docker
# 重启docker服务
systemctl restart docker
# 查看docker服务状态
systemctl status docker
Docker镜像相关命令
# 查看镜像
docker images
docker images -q # 查看所有镜像
# 搜索镜像
docker search [image]
# 拉取镜像
docker pull [image]:[版本号]
# 删除镜像
docker rmi [image ID]
docker rmi [image]:[版本号]
docker rmi `docker images -q` # 删除所有镜像
Docker容器相关命令
# 容器运行
docker run -it --name=[容器命名] [image]:[版本] /bin/bash
> -i:表示保持容器一直运行
> -t:给容器分配一个终端
> -d:后台运行创建容器,通过exit命令退出容器之后容器不会自动关闭
> -it创建的容器一般称为交互式容器,-id创建的容器一般称为守护式容器
> --name:给容器命名
> /bin/bash:进入容器的初始化指令,相当于打开一个shell脚本
# 进入后台运行的容器并分配一个终端
docker exec -it [容器名] /bin/bash
# 退出容器
exit
# 查看正在运行的容器
docker ps
docker ps -a # 查看历史容器
# 停止容器
docker stop [容器]
# 删除容器
docker rm [容器ID/名称]
# 查看容器信息
docker inspect [容器名称]
docker容器的数据卷
数据卷的概念及作用
数据卷是宿主机中的一个目录或文件,当容器目录和数据卷目录绑定之后,对方的修改会立即同步。将宿主机的数据卷加载到容器目录后,当容器销毁后,容器中产生和修改的数据会存储在数据卷目录中。一个数据卷可以被多个容器同时挂载。一个容器也可以挂载多个数据卷。
配置数据卷
创建启动容器时,使用-V参数设置数据卷
docker run (...) -V [宿主机目录(文件)]:[容器内目录(文件)] (...)
# 目录必须是绝对路径
# 如果目录不存在,则会自动创建
# 可以挂载多个数据卷
配置数据卷容器
多容器进行数据交换:
- 多个容器挂载同一个数据卷
- 数据卷容器
C3挂载了宿主机数据卷,再把C1和C2挂载到C3上,这样就相当于C1,C2和C3都挂载了同一个宿主机数据卷。
配置数据卷容器步骤: - 创建启动数据卷容器,使用-V参数设置数据卷
docker run -it --name=c3 -V [容器内目录] [image] /bin/bash
# 会自动分配宿主机数据卷目录
- 创建启动C1,C2容器,使用–volumes-from参数设置数据卷
docker run -it --name=c1 --volumes-from c3 [image] /bin/bash
docker run -it --name=c2 --volumes-from c3 [image] /bin/bash
就算将C3删掉,C1和C2的挂载的数据卷目录也还在。
Dockerfile
Docker镜像原理
Docker镜像是由特殊的文件系统叠加而成,最底端是bootfs,并使用宿主机的bootfs,所以不同系统不能安装不同系统环境的Docker版本,比如window系统下不能安装启动Centos镜像的Docker。
镜像制作
- 容器转为镜像
# 容器转为镜像
docker commit [容器ID] [镜像名称]:[版本号]
# 镜像转为压缩文件
docker save -o [压缩文件名称] [镜像名称]:[版本号]
# 压缩文件还原成镜像
docker load -i [压缩文件名称]
Dockerfile概念及作用
Dockerfile是一个文本文件,包含了若干条指令,每一条指令构建一层镜像,基于基础镜像,最终构建出一个新的镜像。Dockerfile可以为开发团队提供一个完全一致的开发环境。
Dockerfile关键字
https://www.runoob.com/docker/docker-dockerfile.html
Docker服务编排
服务编排概念
按照一定的业务规则批量管理容器
Docker Compose概述
Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止。
使用步骤:
- 使用Dockerfile定义运行环境镜像
- 使用Docker-compose.yml定义组成应用的各服务
- 运行docker-compose up启动应用
容器和虚拟机的区别
容器虚拟化的是操作系统,虚拟机虚拟化的是硬件
传统虚拟机可以运行不同的操作系统,容器只能运行同一类型操作系统