欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker 基础篇之快速上手【一】

程序员文章站 2022-04-19 11:14:09
...

本篇参考自哔哩哔哩尚硅谷官网 Docker 教程

1. 使用 Docker 的前提说明

CentOS 仅发行版本中的内核支持 Docker

  • Docker 运行在 CentOS7 上,要求系统为64位,系统内核版本为3.10以上。
  • Docker 云心在 CentOS6.5 或更高的版本的 CentOS 上,要求系统为64位,系统内核版本为 2.6.32 - 431 或者更高版本。

1.1 查看自己的内核

uname 用于查看当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。
Docker 基础篇之快速上手【一】
Docker 基础篇之快速上手【一】

2. Docker 三要素

2.1 镜像【image】

Docker 镜像【image】就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。
容器与镜像的关系类似于面向对象编程中的对象与类

Docker 面向对象
容器 对象
镜像

2.2 容器【Container】

Docker 利用容器【Container】独立运行的一个或一组应用。容器是用镜像创建的运行实例。
它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
可以把容器看做是一个简易版的 Linux 环境【包括 root用户权限、进程空间、用户空间和网络空间等】和运行在其中的应用程序
容器的定义和镜像几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。

2.3 仓库【Repository】

仓库【Repository】是集中存放镜像文件的场所。
仓库【Repository】和仓库注册服务器 Registry 是有区别的,仓库注册服务器上往往存放着多个仓库,每个仓库又包含了多个镜像,每个镜像有不同的标签 tag。
仓库分为公开仓库 Public 和 私有仓库 Private 两种形式。
最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括阿里云、网易云等。

3 Docker 安装

3.1 CentOS 6.8 安装 Docker

yum install -y epel-release
yum install -y docker-io
// 安装后的配置文件
/etc/sysconfig/docker
// 启动Docker后台服务
service docker start
docker version 验证

3.2 CentOS 7 安装 Docker

https://docs.docker.com/install/linux/docker-ce/centos/

4. Docker 设置阿里云镜像加速器配置

4.1 注册一个属于自己的阿里云账户(可以复用淘宝账号)

4.2 获得加速器地址链接

  • 登陆到阿里云进入控制台界面

Docker 基础篇之快速上手【一】

  • 左边栏搜索产品与服务
    Docker 基础篇之快速上手【一】
  • 选择镜像加速器
    Docker 基础篇之快速上手【一】

4.3 配置本机 Docker 运行镜像加速器

进入本地 Linux 中
编辑 vim /etc/sysconfig/docker
将获取的自己账户下的阿里云加速地址配置进此配置文件中

other_args="--registry-mirror=https://你自己的账号加速信息.mirror.aliyuncs.com"

Docker 基础篇之快速上手【一】

4.4 重启启动 Docker 后台服务

service docker restart

4.5 Linux 系统下配置完成加速器需要检查是否生效

Docker 基础篇之快速上手【一】

4.6 启动 Docker 后台容器(测试运行 hello-world)

docker run hello-world

Docker 基础篇之快速上手【一】

4.7 Docker run 干了哪些事情?

Docker 基础篇之快速上手【一】

5. Docker 常用命令

5.1 帮助命令

docker version
docker info
docker --help

5.2 镜像命令

5.2.1 docker images 命令

docker images

Docker 基础篇之快速上手【一】
各个选项说明:

  1. Repository:镜像仓库源
  2. Tag:镜像的标签
  3. IMAGE ID:镜像 ID
  4. CREATED:镜像创建时间
  5. size:镜像大小
    同一仓库源可以有多个 tag,代表这个仓库源的不同个版本,我们使用 repository:tag 来定义不同的镜像
    如果你不指定一个镜像的版本标签,列如你只使用 ununtu,docker 将默认使用 ubuntu:latest 镜像

OPTIONS 说明:

-a:列出本地所有的镜像(含中间映像层)
Docker 基础篇之快速上手【一】

-q:只显示镜像 ID
Docker 基础篇之快速上手【一】

–digests:显示镜像的摘要信息
Docker 基础篇之快速上手【一】

–no-trunc:显示完整的镜像信息
Docker 基础篇之快速上手【一】

5.2.2 docker search 命令

docker search 【OPTIONS】 镜像名称

此命令作用相当于从Docker官方网站上面搜索镜像
OPTIONS说明:

  1. –no-trunc 显示完整的镜像描述
    Docker 基础篇之快速上手【一】

  2. -s 列出收藏数不小于指定值的镜像
    Docker 基础篇之快速上手【一】

  3. –automated:只列出 automated build 类型的镜像
    Docker 基础篇之快速上手【一】

5.2.3 docker pull 命令

此命令用于下载镜像

docker pull 镜像名称【:TAG】

5.2.4 docker rmi 命令

此命令用于删除镜像

// 删除单个镜像
docker rmi 镜像名称

// 强制删除单个镜像
docker rmi -f 镜像名称

// 强制删除多个镜像
docker rmi -f 镜像名1:TAG 镜像名2:TAG ...

// 强制删除全部镜像
docker rmi -f $(docker images -qa)

5.3 容器命令

  1. 有镜像才能创建容器,这是根本前提(下载一个 CentOS 镜像演示)docker pull centos
  2. 新建并启动容器
docker run [OPTIONS] image [Command][ARG...]

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

docker ps [OPTIONS]

OPTIONS说明【常用】:
-a:列出当前所有正在运行的容器+历史上运行过的
-l:显示最近创建的容器
-n:显示最近n个创建的容器
-q:静默模式,只显示容器编号
–no-trunc:不截断输出
4. 退出容器
两种方式退出:

  • exit 容器停止退出
  • ctrl + P + Q 容器不停止退出
  1. 启动容器
docker start 容器ID或者容器名
  1. 重启容器
docker restart 容器ID或者容器名
  1. 停止容器
docker stop 容器ID或者容器名
  1. 强制停止容器
docker kill 容器ID或者容器名
  1. 删除已停止的容器
// 删除单个容器
docker rm 容器ID

// 一次性删除多个容器
docker rm -f $(docker ps -aq)
docker ps -aq | xargs docker rm

5.4 容器命令2【重要部分】

5.4.1 启动守护式容器

docker run -d 容器名

5.4.2 查看容器日志

docker logs -f -t --tail 容器ID

-t:是加入时间戳
-f:跟随最新的日志打印
–tail 数字显示最后多少条

5.4.3 查看容器内运行的进程

docker top 容器ID

5.4.4 查看容器内部细节

docker inspect 容器ID

5.4.5 进入正在运行的容器并以命令行交互

docker exec -it 容器ID bashShell
// 列出 Docker 中的 centos 虚拟机文件夹 tmp 列表
【特点,不会进入虚拟机中】
docker exec -t 容器ID ls -l /tmp
// 直接进入 Docker 容器中的 centos 终端中
docker exec -t 容器ID /bin/bash
重新进入 docker attach 容器ID

上述二者区别:

  • attach:直接进入容器启动命令的终端,不会启动新的进程
  • exec 是在容器中打开新的终端,并且可以启动新的进程

如下图所示:
Docker 基础篇之快速上手【一】

5.4.6 从容器内拷贝文件到主机上

docker cp 容器ID:容器内路径 目的主机路径

Docke 网站

Docker官网

相关标签: Docker