step04day12docker技术分析(上)

1.docke简述

1.1概述

Docker是一个虚拟化平台( 官网https://www.docker.com/),诞生于 2013 年初,基于 Google 公司的 Go 语言进行实现。可以通过虚拟化方式,为应用提供可运行的容器。基于这种方式,可更快地打包、测试以及部署应用程序。

1.2 docker核心对象

镜像(Image):Docker 镜像是一个特殊的文件系统(https://hub.docker.com/),除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。

1.3Docker 应用架构分析

架构图
Docker 是一种Client/Server架构的应用程序,如图所示(参考docker 官网https://docs.docker.com/get-started/overview/)
在这里插入图片描述

其中:

  • Docker Host是我们的docker宿主机(就是安装了docker的操作系统)
    Registry是docker拉取镜像的远程仓库,提供大量的镜像供下载,下载完成之后保存在Images中 Docker
    Daemon是docker的服务线程,处理Docker客户端命令。 Images 是Docker本地的镜像仓库,可以通过docker
    images查看镜像文件。

1.4docker运行机制

2.docker入门

标题

2.1准备工作

1.准备CentOS(用课前资料中的CentOS7964),本次以CentOS7为例进行安装。
2.基于vmvare打开CentOS
3.克隆CentOS(选择链接克隆-更省空间),命名为CentOS7964-docker

2.2开启虚拟机并连接mobate

1.启动虚拟机,默认账号密码为root/root
2.打开终端,通过ifconfig指令检查网络,
3.通过MobaXterm工具链接虚拟机系统

2.3安装卸载docker

2.3.1.离线安装

1 下载docker离线包
https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz
2.下载离线安装工具
https://github.com/Jrohy/docker-install/
3.在linux环境下,创建/root/setup/docker目录,然后拷贝下载好的资源到此目录(可通过MobaXterm工具直接上传到linux目录)
4.执行安装操作

# 为 install.sh添加执行权限
chmod +x install.sh

# 安装
./install.sh -f docker-20.10.6.tgz

5.安装成功以后,检查安装状态

docker info

说明:网络不佳时可以采取此方式安装

2.3.2.在线安装

1.安装一组工具

sudo yum install -y yum-utils

2设置 yum 仓库地址

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

sudo yum-config-manager \
     --add-repo \
     http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.更新 yum 缓存

sudo yum makecache fast #yum 是包管理器

4.安装新版 docker

sudo yum install -y docker-ce docker-ce-cli containerd.io

## 2.3.3卸载docker

假如已经有docker,可通过执行如下指令卸载Docker,例如:

sudo yum remove docker-ce \
                docker-ce-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

说明,此方法只适用于在线安装的文件。

2.4 docker常用指令

  1. docker info 查看docker信息
    在这里插入图片描述

示例:

docker info | grep ‘Docker Root Dir:’

在这里插入图片描述
2.systemctl status docker 查看docker状态

在这里插入图片描述
3. docker命令合集

启动docker服务
systemctl start docker
设置开机自启
systemctl enable docker
重新启动服务。
systemctl restart docker
查看Docker信息
docker info
停止docker服务
systemlctl stop docker

2.5 docker常见问题

1.docker连接错误

2.docker容器删除错误

3.docker容器尚未运行
在这里插入图片描述

3.docker镜像操作

3.1 镜像操作实践

1.相关命令简析

docker pull hello-world 下载镜像
docker images 浏览镜像文件
docker inspect镜像名或镜像id
docker history hello-world 查看镜像历史
docker save hello-world |gzip > hello-world.tar.gz 导出镜像文件
docker image rm hello-world 删除镜像文件
docker run hello-world 运行镜像文件

2.实例演示

4 Docker 容器操作实践

实例演示:
本次以CentOS镜像为例,讲解容器的基本操作

4.1 下载镜像

docker pull centos:7 通过docker pull指令下载CentOS镜像
docker images 下载完以后,查看centos7镜像文件

4.2创建并启动容器

docker run -it xxxx bash
其中:
1)xxxx - 镜像名, 或 image id 的前几位,
2)-it 这是两个参数(-i表示交互式操作, -t 表示终端)
3) bash 表示进入操作终端,基于交互式进行相关操作(例如执行linux相关指令)。
实例:
docker run -it centos:7 bash

4.3 查看Docker中的容器

查看docker运行中的容器 ;docker ps

查看docker运行中的所有容器:docker ps -a

docker container logs 802 查看容器日志信息
停止或重启容器;docker container stop 802
docker container restart 802

进入指定容器
docker exec -it 802 bash #802为容器id
退出容器:exit
删除容器: docker container rm 802 #802为容器id
docker rm -f 802 #802为容器id

5 Docker数据管理实践

5.1 概述

在容器中管理数据主要有两种方式:

挂载主机目录 (Bind mounts)-最常用 (docker run -v 宿主机目录:容器目录)
数据卷(Volumes):数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用,默认会一直存在,即使容器被删除。

5.2 数据卷操作

1.相关命令简析

创建数据卷:docker volume create container-vol
查看所有数据卷:docker volume ls
查看指定数据卷的信息 :docker volume inspect container-vol
启动挂载数据卷的容器:docker run-it --mount source=container-vol,target=/root centos:7 bash
简写:docker run -it -v container-vol:/root centos:7 bash
删除数据卷:docker volume rmcontainer-vol
清理无主数据卷:docker volume prune

5.3挂载主机目录

命令: docker run -it -v /usr/app:/opt/app centos:7 bash
其中:
1)/usr/app:为宿主机目录
2)/opt/app: 为启动容器的一个目录
3)-v 用于指定挂载目录,如果本地目录(宿主机目录)不存在, Docker 会自动为你按照挂载目录进行目录的创建。
在这里插入图片描述
docker inspect 91a #91a 为容器id

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值