Docker 基础篇之快速上手【一】
本篇参考自哔哩哔哩尚硅谷官网 Docker 教程
Docker 基础篇之快速上手【一】
- 1. 使用 Docker 的前提说明
- 2. Docker 三要素
- 3 Docker 安装
- 4. Docker 设置阿里云镜像加速器配置
- 4.1 注册一个属于自己的阿里云账户(可以复用淘宝账号)
- 4.2 获得加速器地址链接
- 4.3 配置本机 Docker 运行镜像加速器
- 4.4 重启启动 Docker 后台服务
- 4.5 Linux 系统下配置完成加速器需要检查是否生效
- 4.6 启动 Docker 后台容器(测试运行 hello-world)
- 4.7 Docker run 干了哪些事情?
- 5. Docker 常用命令
- Docke 网站
1. 使用 Docker 的前提说明
CentOS 仅发行版本中的内核支持 Docker
- Docker 运行在 CentOS7 上,要求系统为64位,系统内核版本为3.10以上。
- Docker 云心在 CentOS6.5 或更高的版本的 CentOS 上,要求系统为64位,系统内核版本为 2.6.32 - 431 或者更高版本。
1.1 查看自己的内核
uname 用于查看当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。
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 获得加速器地址链接
- 登陆到阿里云进入控制台界面
- 左边栏搜索产品与服务
- 选择镜像加速器
4.3 配置本机 Docker 运行镜像加速器
进入本地 Linux 中
编辑 vim /etc/sysconfig/docker
将获取的自己账户下的阿里云加速地址配置进此配置文件中
other_args="--registry-mirror=https://你自己的账号加速信息.mirror.aliyuncs.com"
4.4 重启启动 Docker 后台服务
service docker restart
4.5 Linux 系统下配置完成加速器需要检查是否生效
4.6 启动 Docker 后台容器(测试运行 hello-world)
docker run hello-world
4.7 Docker run 干了哪些事情?
5. Docker 常用命令
5.1 帮助命令
docker version
docker info
docker --help
5.2 镜像命令
5.2.1 docker images 命令
docker images
各个选项说明:
- Repository:镜像仓库源
- Tag:镜像的标签
- IMAGE ID:镜像 ID
- CREATED:镜像创建时间
- size:镜像大小
同一仓库源可以有多个 tag,代表这个仓库源的不同个版本,我们使用 repository:tag 来定义不同的镜像
如果你不指定一个镜像的版本标签,列如你只使用 ununtu,docker 将默认使用 ubuntu:latest 镜像
OPTIONS 说明:
-a:列出本地所有的镜像(含中间映像层)
-q:只显示镜像 ID
–digests:显示镜像的摘要信息
–no-trunc:显示完整的镜像信息
5.2.2 docker search 命令
docker search 【OPTIONS】 镜像名称
此命令作用相当于从Docker官方网站上面搜索镜像
OPTIONS说明:
-
–no-trunc 显示完整的镜像描述
-
-s 列出收藏数不小于指定值的镜像
-
–automated:只列出 automated build 类型的镜像
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 容器命令
- 有镜像才能创建容器,这是根本前提(下载一个 CentOS 镜像演示)
docker pull centos
- 新建并启动容器
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 容器不停止退出
- 启动容器
docker start 容器ID或者容器名
- 重启容器
docker restart 容器ID或者容器名
- 停止容器
docker stop 容器ID或者容器名
- 强制停止容器
docker kill 容器ID或者容器名
- 删除已停止的容器
// 删除单个容器
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 是在容器中打开新的终端,并且可以启动新的进程
如下图所示:
5.4.6 从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
Docke 网站
下一篇: Mac下安装OpenMP并完成编译