DOCKER简介
docker属于基于apache2.0开源,是使用go语言编写的,底层是LXC,
LXC 是一种基于linux内核的虚拟化技术,它是轻量级的虚拟化技术,允许在同一操作系统内运行多个隔离的用户空间环境,每个用户的空间环境都被称为一个容器,容器之间完全隔离,拥有自己的文件系统、进程、网络和用户空间。
Docker三要素:
镜像(前置条件)、仓库(代码仓库)、容器(沙箱子)。
docker分本地和远程
docker优缺点:
优点:高效利用系统资源,快速的启动时间,一致的运行环境,持续交付和部署,轻松的迁移,轻松的维护和发展
缺点:隔离性、性能、存储方案
以下是DOCKER的安装步骤
环境:
VMware虚拟机
centos 7.6
- 先要进行远程yum源的安装(远程yum源使用的是阿里的yum源)
yum install -y yum-utils device-mapper-persistent-data lvm2
注释:
yum-utils:提供了一些额外的工具和插件,可以增强yum的功能。
device-mapper-persistent-data:提供了一个持久化设备映射器(device mapper)的API,用于管理逻辑卷(logical volume)。
lvm2:提供了逻辑卷管理器(Logical Volume Manager),可以用于创建、删除、调整和管理逻辑卷。
- 在centos系统中使用yum管理器,添加docker软件源的命令
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 启用docker的nighty版本软件源,docker的开发版本,包含所有特性
yum-config-manager --enable docker-ce-nightly
- 所用yum安装dockers的软件包
yum install -y docker-ce docker-ce-cli containerd.io
注释:
docker-ce:Docker CE 的主要软件包,包含了 Docker 引擎和一些基本的 CLI 工具。
docker-ce-cli:Docker CE 的 CLI 工具包,包含了 Docker 命令行工具。
containerd.io:Docker CE 的容器运行时,提供了容器的生命周期管理和基本的容器编排功能。
- 使用 yum 安装 Docker Compose 工具
yum install -y docker-compose
Docker Compose 是 Docker 官方提供的一个工具,可以用于定义和运行多个 Docker 容器的应用程序。
- 开启docker
systemctl start docker 开启docker
systemctl enable docker 并加入开机自启项
docker -v 查看docker版本
docker-compose version 查看工具版本
- 启用docker测试版本的软件元
vim /etc/yum.repos.d/docker-ce.repo 需要修改配置文件中的参数
- 安装Docker引擎的命令
yum install -y docker-ce docker-ce-cli containerd.io
- 查看docker信息
docker info显示系统信息
docker version 详细信息
根据上图可知:查看信息时发现报错信息,报错原因是没有启动docker
启动命令:systemctl start docker
**
通过以上方法,docker安装完成,以下是docker安装完成后的常用命令汇总
**
- 列出所有的镜像
docker images 列出所有的镜像
注释
REPOSITORY镜像的仓库源
TAG镜像的标签
IMAGE ID镜像ID
CREATED镜像创建的时间
SIZE镜像大小
- docker search centos7 查询
注释
NAME 镜像仓库源的名称
DESCRIPTION镜像的描述
STARS点赞收藏
OFFICIAL 是否官方发布
AUTOMATED自动构建,会在与其代码库发生变更时自动更新
- 拉取centos7镜像
docker pull couchbase/centos7-systemd 拉取镜像
- 标记镜像复制镜像
docker tag couchbase/centos7-systemd:latest aaa:1.0标记镜像复制镜像
docker tag 镜像名称:TAG 新镜像名称:TAG
- 运行
docker run -itd -p 9999:80 tubug:1.0
注释:
docker run: 运行一个新的容器</font>
-itd: 分别表示交互式运行容器、分配一个伪终端以便在容器内操作、在后台运行容器
-p:端口映射 主机端口:容器端口
- 启动容器
docker start 容器ID
- 关闭容器
docker stop 容器ID
- 重启容器
docker restart 容器ID
- 列出容器信息
docker ps -a
各项说明:
CONTAINER ID 容器 ID。
IMAGE 使用的镜像。
COMMAND 启动容器时运行的命令
CREATED 容器的创建时间
STATUS 容器状态
PORTS 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES 自动分配的容器名称
容器有7种状态:
created 已创建
restarting 重启中
running 运行中
removing 迁移中
paused 暂停
exited 停止
dead 死亡
- 进入docker容器
docker exec -it cbfe15e44806 /bin/bash 进入docker
- 退出docker容器
exit 退出
- 其他
docker stop 容器id 停止
docker kill 容器id 强制关闭
docker rm -f 容器id 删除运行中的容器,不用关机删除一个或多个 Docker 容器。
docker rmi -f 镜像名称 删除一个或多个 Docker 镜像
docker save:将容器镜像保存到本地文件系统中,以便在另一台机器上使用。
docker load:从本地文件系统中加载容器镜像。
docker export:将容器文件系统打包成tar归档,不包含容器镜像的元数据信息。
docker import:将tar归档导入为容器镜像。
他们的区别在于,docker save和docker load用于整个容器镜像的导出和导入,包含所有元数据信息,可以在另一台机器上完全还原容器环境;而docker export和docker import只处理容器文件系统,不包含元数据信息,只能导出容器运行时的文件系统内容。因此,使用docker export和docker import导出和导入的容器镜像无法还原容器运行时的配置和元数据信息。
元数据信息指的是Docker容器镜像相关的配置信息,例如镜像名称和标签、容器启动命令、环境变量、容器网络配置、容器存储卷、容器端口映射等。这些信息都是在docker build时设置的,也可以通过docker commit、docker tag等命令进行修改和设置。这些元数据信息是用来描述和管理Docker容器镜像的重要信息,因此在导出和导入Docker容器镜像时需要考虑元数据信息的保存和恢复。
docker save > a.tar aaa:1.0 将指定镜像保存为tar文件 >可以写成 -o
docker load < a.tar 导入使用docker save 命令导出的文件 < 可以写成 -i
docker export -o b.tar 28d8da469c3e 容器快照 名称,容器id
docker import b.tar op:v1 将tar文档导入为容器镜像