一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等【详细说明+图解+概念+实践】

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一个混迹于Github、Stack Overflow、开源中国、CSDN、博客园、稀土掘金、51CTO等 的野生程序员。
目标分享更多的知识充实自己帮助他人
GitHub公共仓库https://github.com/zhengyuzh
以github为主
1、分享前端+后端基础知识
2、前后端框架知识+框架使用分析
3、热门前端+后端面试题实时更新
4、开源项目主要包含大学课程设计

为了方便查看请使用侧边栏的形式阅读文章目录在侧边栏

三连哦

1、Docker是什么

Docker 是一个开源的应用容器引擎基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中然后发布到任何流行的 Linux 机器上也可以实现虚拟化。

容器是完全使用沙箱机制相互之间不会有任何接口类似 iPhone 的 app,更重要的是容器性能开销极低。

docker能干嘛

一次构建、随处运行

  • 更快速的应用交付和部署
  • 更便捷的升级和扩缩容
  • 更简单的系统运维更高效的计算资源利用

2、Docker架构

Docker 包括三个基本概念:

  • 镜像imageDocker 镜像Image就是一个只读的模板。镜像可以用来创建 Docker 容器一个镜像可以创建很多容器
  • 容器container Docker 利用容器Container独立运行的一个或一组应用。容器是用镜像创建的运行实例。 它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。 可以把容器看做是一个简易版的 Linux 环境包括root用户权限、进程空间、用户空间和网络空间等和运行在其中的应用程序。容器的定义和镜像几乎一模一样也是一堆层的统一视角唯一区别在于容器的最上面那一层是可读可写的。
  • 仓库repository仓库Repository是集中存放镜像文件的场所。仓库(Repository)和仓库注册服务器Registry是有区别的。仓库注册服务器上往往存放着多个仓库每个仓库中又包含了多个镜像每个镜像有不同的标签tag。 仓库分为公开仓库Public和私有仓库Private两种形式。最大的公开仓库是 Docker Hub(https://hub.docker.com/)存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云 、网易云 等

在这里插入图片描述

概念说明
Docker 镜像(Images)Docker 镜像是用于创建 Docker 容器的模板比如 Ubuntu 系统。
Docker 容器(Container)容器是独立运行的一个或一组应用是镜像运行时的实体。
Docker RegistryDocker 仓库用来保存镜像可以理解为代码控制中的代码仓库。Docker Hub(https://hub.docker.com) 提供了庞大的镜像集合供使用。一个 Docker Registry 中可以包含多个仓库Repository每个仓库可以包含多个标签Tag每个标签对应一个镜像。通常一个仓库会包含同一个软件不同版本的镜像而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签将以 latest 作为默认标签。
Docker 主机(Host)一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。
Docker 客户端(Client)Docker 客户端通过命令行或者其他工具使用 Docker SDK (https://docs.docker.com/develop/sdk/) 与 Docker 的守护进程通信
Docker MachineDocker Machine是一个简化Docker安装的命令行工具通过一个简单的命令行即可在相应的平台上安装Docker比如VirtualBox、 Digital Ocean、Microsoft Azure。

提示

需要正确的理解仓储/镜像/容器这几个概念: Docker 本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置依赖打包好形成一个可交付的运行环境这个打包好的运行环境就似乎 image镜像文件。只有通过这个镜像文件才能生成 Docker 容器。image 文件可以看作是容器的模板。Docker 根据 image 文件生成容器的实例。同一个 image 文件可以生成多个同时运行的容器实例。 * image 文件生成的容器实例本身也是一个文件称为镜像文件。 * 一个容器运行一种服务当我们需要的时候就可以通过docker客户端创建一个对应的运行实例也就是我们的容器 * 至于仓储就是放了一堆镜像的地方我们可以把镜像发布到仓储中需要的时候从仓储中拉下来就可以了。

3、Docker安装

3.1 安装

Docker 支持以下的 64 位 CentOS 版本
CentOS 7
CentOS 8
更高版本…

以安装centos7为例

使用官方安装脚本自动安装安装命令如下

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

查看安装的docker

docker version

在这里插入图片描述

3.2 启动

systemctl start docker

4、配置阿里云镜像

4.1 阿里云账号

登录自己的阿里云账号

在这里插入图片描述

4.2 配置镜像

可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器。如果没有该文件创建。使用 touch daemon.json创建。

在这里插入图片描述

使配置的文件生效

//重新加载
sudo systemctl daemon-reload
sudo systemctl restart docker

5、Docker常用命令

5.1 镜像命令

5.1.1列出本地主机上的镜像

docker images

在这里插入图片描述
参数说明

  • REPOSITORY表示镜像的仓库源
  • TAG镜像的标签
  • IMAGE ID镜像ID
  • CREATED镜像创建时间
  • SIZE镜像大小

提示 同一仓库源可以有多个 TAG代表这个仓库源的不同个版本我们使用 REPOSITORY:TAG 来定义不同的镜像。如果你不指定一个镜像的版本标签例如你只使用 ubuntudocker 将默认使用 ubuntu:latest 镜像


5.1.2查询某个镜像

docker search 某个XXX镜像名字

例如 查询redis

在这里插入图片描述


5.1.3下载某个镜像

docker pull 某个XXX镜像名字

例如下载redis、默认下载最新版本

//默认下载最新的redis
docker pull redis

//下载指定的redis版本
docker pull redis:4.0.1

在这里插入图片描述


5.1.4删除某个下载的镜像

docker rmi 某个XXX镜像名字ID

例如删除 redis镜像

docker rmi redis

在这里插入图片描述

5.2 容器命令

5.2.1 新建并且启动容器

新建并且启动一个容器、前提是由对应的镜像。一个镜像可以创建多个容器。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS说明常用有些是一个减号有些是两个减号 --name=“容器新名字”: 为容器指定一个名称-d: 后台运行容器并返回容器ID也即启动守护式容器-i以交互模式运行容器通常与 -t 同时使用-t为容器重新分配一个伪输入终端通常与 -i 同时使用-P: 随机端口映射-p: 指定端口映射有以下四种格式 ip:hostPort:containerPort ip::containerPort hostPort:containerPort containerPort

例如以centos镜像创建一个centostest005的容器在大部分的场景下我们希望 docker 的服务是在后台运行的我们可以过 -d 指定容器的运行模式。

docker run -itd --name centostest005 centos /bin/bash

在这里插入图片描述

列出当前所有正在运行的容器

docker ps

在这里插入图片描述

在以centos镜像创建一个centostest006 容器同时查看运行的容器

在这里插入图片描述

5.2.2 停止容器

docker stop 容器ID或者容器名

这里的容器ID可以通过docker ps 查看

在这里插入图片描述

5.2.3 删除停止容器

docker rm 容器ID

在这里插入图片描述

5.2.4 启动容器

前提是已经根据镜像创建过容器只不过创建的容器暂时未启动

docker start 容器ID或者容器名

在这里插入图片描述

5.3.5 进入已运行的容器

方式一
exec 是在容器中打开新的终端并且可以启动新的进程因为是新终端用exit退出不会导致容器的停止。

docker exec -it 容器ID /bin/bash

在这里插入图片描述

方式二

 docker attach 容器ID

attach 直接进入容器启动命令的终端不会启动新的进程。如果进入前台交互式启动容器,用exit退出会导致容器的停止用ctrl+p+q不会导致容器停止。如果进入后台守护式启动容器不仅无法进行交互并且ctrl+c会导致守护式进程停止。

在这里插入图片描述

提示工作中我们一般使用 docker run -d image:tag /bin/bash启动容器再通过docker exec -it 容器ID /bin/bash最为安全可靠。

5.2.6 退出容器的方法

  1. exitrun进去容器exit退出容器停止

  2. ctrl+p+qrun进去容器ctrl+p+q退出容器不停止

在这里插入图片描述
测试 ctrl+p+q

在这里插入图片描述
测试exit
在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Docker

“一文讲明Docker的基本使用,常见Docker命令使用 、Docker的安装使用等【详细说明+图解+概念+实践】” 的相关文章