阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker使用体验札记

467次阅读
没有评论

共计 3401 个字符,预计需要花费 9 分钟才能阅读完成。

一、前言

        Docker 容器已经发布许久,但作为一名程序员如今才开始接触,实在是罪过……
        在此之前,我还没有对 Docker 进行过深入的了解,对它的认识仍停留在:这是一种新型的虚拟机。这样的层面。今天就我的初次体验进行记录。声明一点:以下内容大部分是主观片面的,另有来自百度的(嗯,就是百度)。要是有什么说的不对,或者是理解 有问题的地方,还请大家告诉我,先谢谢大家了。

 

二、环境
        我的基础运行环境是运行在 Win10 专业版 HyperV 虚拟机中的 CentOS7-Minimal 版本。新装的虚拟机,保证运行环境不受奇奇怪怪的东西影响。
        CentOS 安装 Docker 简洁明快:sudo yum install docker -y。等着就行……安装内容如下:

Docker 使用体验札记

 

四、启动 Docker 服务
        与安装一样简洁明快:sudo systemctl start docker。如果没有报错,那就是启动完成了。(我喜欢用 systemctl,反正只要能启动服务,你想咋启动就咋启动。)命令没有回显,我就不截图了。

 

五、获取容器镜像
        Docker 提供镜像搜索命令(search),方便你快速找到自己想要的镜像。当然,镜像的源你可以自己配置,默认是 docker.io。我只打算找一个 CentOS 的镜像,所以默认的源就行。搜索命令如下:

Docker 使用体验札记

        可以看到,搜索到好多镜像。最后两列字面意思我没理解,但是应该是标记官方镜像和开发者上传的镜像。我选择第一个,标记着“官方的”,应该没有装任何其他的东西。
        嗯,接下来就是下载(pull)镜像了。命令如下(渣渣网速):

Docker 使用体验札记

        可以看到,默认下载的是最新的(latest)。当然,你可以下载其他非最新的版本,具体操作请查询 pull 命令的相关参数。我只要最新的(傲娇脸)。这个镜像大小也是 6。这么小,估计真的是什么都没装吧(还是压缩了?)……

Docker 使用体验札记

        上面是下载完成后显示的信息。

 

六、创建容器
        接下来就是从刚下载的镜像创建一个容器了。新的容器的所有内容都会从镜像里拷贝(那个改是拷贝吧)。
        声明:由于输入 sudo 太麻烦,所以下面的演示都用 root 用户执行。
        创建容器(run)命令就比较复杂了,参数较多:

Docker 使用体验札记

        如上,我来一个一个解释:
        -itd:这是 -i -t -d 的简写。-i 表示保持打开标准输入流(stdin),无论是否连接到此容器。-t 为容器分配一个虚拟的 tty。-d 表示后台模式运行容器,即容器启动后将断开与当前终端的连接。(之后会演示怎么再连回来)。
        –name:这是为容器起一个名字,之后与容器的交互需要用到,当然用容器的 Id 也是可以的(就是 run 命令后那个巨长的回显)。当然,不写的话也会有默认的名字。
        -v:表示挂载宿主机(这个称呼对吗?)目录到容器的目录(宿主机目录路径: 容器目录路径)。当然可以设置读写属性,这个就不说了,可以自行探索。
        -p:表示映射(端口转发?)主机端口至容器端口(主机端口: 容器端口)。这个参数可以重复出现,映射多个端口。这个参数也有许多情况,也请自行探索。
        centos:这个是本地镜像名称(centos),必须是已经下载(pull)到本地的镜像。当然,若是本地没有,Docker 会执行 search 并询问你是不是要下载。
        /bin/bash:这个是本次启动的镜像要执行的任务。这个门道比较多,我在后面会说一下。
        此处省略了 -a 参数。- a 参数可以指定连接准输入流(STDIN)、标准输出流(STDOUT)和标准错误流(STDERR),默认好像是都连接。可以显式使用,以连接指定的流。
        以上就是命令的相关解释,是我自己配合百度理解的,要是有不对的,请大家留言哦。

 

七、查看容器
        使用 docker ps -a 命令可以查看当前存在的所有容器:

Docker 使用体验札记

        如上,我只运行了一个容器。命令显示了容器的 ID、使用的镜像、运行的命令、创建时间、运行时间、端口映射、名称。

 

八、连接容器
        连接容器有多种办法。在宿主机中使用 Docker 的 attach 命令,即可连接到容器:

Docker 使用体验札记

        如上,就已经连接到容器了。可以看到命令行信息的变化。
        我使用了 ps 命令查看了容器中的进程。可以看到一个 ID 为 1 的进程,这个进程就是 run 命令最后的那个参数。Run 命令所指定的任务进程 Id 一定是 1。我们使用 attach 命令连接的也是这个命令的标准输入输出流(错误流我不知道连接了没)。由于 run 指定的命令是 bash,所以 attach 也是连接到了 bash,这样就能随意操作容器了。
        关闭连接很容易想到,就是退出 bash:exit。

        但是、但是、但是,这样退出会导致一个问题,那时就是:容器因为 1 号进程的退出(就是 attach 命令连接的 bash),会认为任务已完成,容器就停止了。

Docker 使用体验札记

        如上,容器已经停止了(Exited)。
        所以,我建议使用 exec 命令对容器进行操作。我们重启容器:

Docker 使用体验札记

        可以看到,start 加容器名称就能启动。
        使用 exec 命令,可以让容器直接执行命令(docker exec 容器名称 命令):

Docker 使用体验札记

        如上,是我用 exec 对 nethost 执行 ps 命令查看进程,执行 ls 命令列出根目录。
        也可以用 exec 执行 bash 并挂载输入输出流:

Docker 使用体验札记

        如上,是我用 exec 命令启动 bash 并挂载输入输出流。-it 参数的意义和 run 命令相同,不同的是没有使用 - d 命令,这样(前台模式)可以使命令执行后直接连接输入输出流。我执行了 ls 命令和 ps 命令。
        从 ps 命令的显示可以看出,exec 命令启动了一个新的 bash,PID 为 24(当然,PID 应该是随机赋值的)。区别于 PID 为 1 的 bash,我们当前连接的就是这个 PID 为 24 的 bash,一样可以执行命令,随意操作。并且退出之后,也不会影响 PID 为 1 的 bash,这样就可以使容器继续运行。

Docker 使用体验札记

       上图可见,我退出了容器的 bash 后,容器依然在运行。我在宿主机中使用 exec 执行 ps 命令后,nethost 这个容器中 1 号进程仍然在运行。

 

九、停止和删除容器
        上面提到了启动容器(start)命令,停止容器当然是停止命令(stop)了。

Docker 使用体验札记

        stop 命令执行效果如上。
        删除容器更容易,使用 rm 命令:

Docker 使用体验札记

       如上,我删除了名为 nethost 的容器,因为只有一个容器,所以删除之后九没有容器了。要注意的是:rm 命令只能删除已经停止的容器。并且 rm 命令不像 linux 的 rm 命令那样会有删除确认,docker 的 rm 命令会直接删除容器,所以用的时候要小心。

 

十、其他
        其他的内容,如:备份、迁移、上传镜像等,我还没有试过,暂时不进行记录。

更多 Docker 相关教程见以下内容

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 14.04 安装 Docker  http://www.linuxidc.com/linux/2014-08/105656.htm 

Ubuntu 使用 VNC 运行基于 Docker 的桌面系统  http://www.linuxidc.com/Linux/2015-08/121170.htm 

阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm 

Ubuntu 15.04 下安装 Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm 

在 Ubuntu Trusty 14.04 (LTS) (64-bit)安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm 

在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm 

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/136699.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3401字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7981138
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流!

CSDN,你是老太太喝粥——无齿下流! 大家好,我是星哥,今天才思枯竭,不写技术文章了!来吐槽一下 CSDN。...
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...
如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的Nano Banana Pro?附赠邪修的用法

如何免费使用强大的 Nano Banana Pro?附赠邪修的用法 前言 大家好,我是星哥,今天来介绍谷歌的 ...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...