Docker 容器下载 及 基本操作指令

1. Docker 技术简介

概述
Docker是一个虚拟化平台( 官网https://www.docker.com/),诞生于 2013 年初,基于 Google 公司的 Go 语言进行实现。可以通过虚拟化方式,为应用提供可运行的容器。基于这种方式,可更快地打包、测试以及部署应用程序。
在这里插入图片描述
现阶段,很多应用软件的安装都在向基于docker方式的安装进行实现。例如mysql,那么为什么不直接在操作系统中安装一个mysql,而是用容器呢?因为,安装MySql过程并不简单,要配置安装源,安装依赖包,对mysql进行配置…如果要在多台主机上安装,每台主机都要进行这些繁琐的操作,万一服务器挂了,这一系列操作还要再重来一遍,但有了docker,一个安装配置好的mysql容器,可以直接拿到另一台主机上启动,而不必重新安装mysql。另外,docker还有一重要的用处,就是可以保证开发,测试和生产环境的一致.

版本说明
Docker分成了两个版本:Docker EE (企业版)和Docker CE(社区版本),其中,Docker EE由公司支持,可在经过认证的操作系统和云提供商中使用。Docker CE是免费的Docker产品的新名称,Docker CE包含了完整的Docker平台,非常适合开发人员和运维团队构建容器APP。

Docker 核心对象

镜像(Image)

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

容器(Container)

Docker容器可以将其理解为一个运行镜像的载体,镜像(Image)和容器(Container)的关系,就像是光盘和光驱。容器基于镜像创建、启动,然后运行镜像的中的文件。

Docker 应用架构分析

架构图

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查看镜像文件。

Docker运行机制

docker pull 执行过程:

  1. 客户端将指令发送给docker daemon
  2. docker daemon 先检查本地images中有没有相关的镜像
  3. 如果本地没有相关的镜像,则向镜像服务器请求,将远程镜像下载到本地

docker run 执行过程:

  1. 检查本地是否存在指定的镜像,不存在就从公有仓库下载
  2. 利用镜像创建并启动一个容器
  3. 分配一个文件系(简版linux系统),并在只读的镜像层外面挂载一层可读写层
  4. 从宿主机配置的网桥接口中桥接一个虚拟接口到容器中去
  5. 从地址池配置一个 ip 地址给容器
  6. 执行用户指定的应用程序

2. Docker安装

准备工作

第一步:打开终端,通过ifconfig指令检查网络,
在这里插入图片描述
第二步:通过MobaXterm工具链接虚拟机系统
在这里插入图片描述
在这里插入图片描述

卸载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

在线安装Docker

第一步:安装一组工具

sudo yum install -y yum-utils 

第二步:设置 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

第三步:更新 yum 缓存

sudo yum makecache fast #yum 是包管理器

第四步:安装新版 docker

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

离线安装Docker

第一步:下载docker离线包

https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz

说明,也可以从https://download.docker.com/linux/static/stable/网址下载指定版本

第二步:下载离线安装工具

https://github.com/Jrohy/docker-install/

在这里插入图片描述
说明,将下载好的这个工具解压。

第三步:将下载好的资源放在一个目录,例如:

在linux环境下,创建/root/setup/docker目录,然后拷贝下载好的资源到此目录(可通过MobaXterm工具直接上传到linux目录),例如
在这里插入图片描述
第四步:执行安装操作

# 进入/root/setup/docker 文件夹
cd /root/setup/docker

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

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

第五:安装成功以后,检查安装状态

docker info

3. Docker服务基本操作

启动docker服务

systemctl start docker

查看Docker状态

查看docker是否启动了,是否是运行状态.

systemctl status docker

在这里插入图片描述

设置开机自启

systemctl enable docker

重新启动Docker服务

systemctl restart docker

查看Docker信息

docker info

查看docker info中具体key的信息,例如:

docker info | grep 'Docker Root Dir:'

停止docker服务

systemctl stop docker

Docker镜像加速

由于国内网络问题,需要配置加速器来加速。修改配置文件 /etc/docker/daemon.json
下面命令直接生成文件 daemon.json

cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"
  ],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
    },
  "data-root": "/var/lib/docker"
}
EOF

说明: 在执行如上指令时,保证你的登录用户为root管理员用户。

4. Docker镜像操作

下载镜像

语法:docker pull 镜像名
案例:

docker pull hello-world

浏览镜像文件

语法:

docker images

查看镜像详情

语法:docker inspect 镜像名或镜像id

docker inspect hello-world

查看镜像历史

一个镜像是由多个层(layer)组成的,那么,我们要如何知道各个层的具体内容呢?通过 docker history 命令,可以列出各个层(layer)的创建信息,例如:

docker history hello-world

导出镜像文件

镜像导出(linux系统中的镜像文件下载到本地-例如window),导出后给他人使用

docker save  hello-world | gzip > hello-world.tar.gz  

删除镜像文件

语法:docker image rm 镜像名或镜像id

docker image rm hello-world
docker image rm d11 # d11 是此镜像ID前三位

导入镜像操作

镜像导入(要在hello-world.tar.gz 文件所在目录下执行)

docker load < hello-world.tar.gz  

运行镜像文件

基于镜像,启动容器运行。

docker run hello-world

5. Docker 容器操作实践

本次以CentOS镜像为例,讲解容器的基本操作。

下载镜像

通过docker pull指令下载CentOS镜像,例如:

docker pull centos:7

说明,官方镜像仓库地址为https://hub.docker.com/

下载完以后,查看centos7镜像文件。

docker images

创建并启动容器

基本语法解析:

docker run -it xxxx bash

其中:

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

案例:通过docker启动运行 centos7镜像

docker run -it centos:7 bash

查看Docker中的容器

查看docker运行中的容器

docker ps

查看docker运行中的所有容器

docker ps -a

其中,-a表示全部(all)。

查看容器日志信息

查看后台运行的容器输出结果,这个指令非常重要,假如容器没有启动,要通过此指令去看一下错误日志。

docker container logs 802

停止或重启容器

停止运行的容器,代码如下:

docker container stop 802

重新启动容器,代码如下:

docker container restart 802

进入指定容器

当需要进入容器进行操作时(容器运行着),可以使用 docker exec 命令,例如:

docker exec -it 802 bash #802为容器id

退出容器

假如从宿主机进入了启动的容器,退出容器需要使用exit指令,例如:

exit

删除容器

假如容器不用了,可执行删除操作,例如:

docker container rm 802 #802为容器id

其中,如果删除运行中的容器,需要添加 -f 参数。

清理所有终止状态容器,例如:

docker container prune
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xingxing...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值