linuxea: 三小时快速入门docker指南


在此之前,我记录了很多章关于docker使用的基础,从安装到编写,其中还有一些常见的使用技巧,这其中还包括一些docker-compsoe的简单操作案例,其中有一些由于编写的时间太久,bug很多,但用来学习绰绰有余,但也仅供参考。


现在,我将所有的文章汇聚在一个页面中方便查看。

假如你是一个docker新手,没有太多时间,你不妨从本章入手学习,假如你想详细了解docker,那我推荐你查看我记录的白话容器26章系列详细学习docker。

如果你已经阅读了这所有的文章,你可以查看我的github上的dockerMops,在这个项目中,有我学习的从之前到现在私下编写的一些镜像原文件。请不要误会,这一些仅仅只是为了更好的理解docker,仅供参考。如果你在生产中使用,请妥善思考如何使用。

如果文章中出现错误,请留言或者QQ讨论群:47355295 ,加群注明来意

这是一篇似乎多余的文章,因为这里提到的都是些基础。这是因为考虑到很多新手朋友接触docker学习的困难,我花了一个下午断断续续写好,它不需要你付费,它仅仅只希望可以帮助到大家。正所谓,取自网络,回馈网络。请不要吝啬你的赞美

I. 安装docker和 compose

脚本部署:

[root@www.linuxea.com-Node99 ~]# curl -Lks https://raw.githubusercontent.com/marksugar/MySysOps/master/scripts/docker-init-Usage.sh|bash
Please input one arguement:
Usage: bash {centos_install|debian_install|ubuntu_install}

当你执行这个脚本,他会提示你:

Please input one arguement:
Usage: bash  docker-init-Usage.sh{centos_install|debian_install|ubuntu_install}

只需要输入对应的系统安装即可,如centos

[root@www.linuxea.com-Node99 ~]# curl -Lks https://raw.githubusercontent.com/marksugar/MySysOps/master/scripts/docker-init-Usage.sh|bash -s centos_install
docker 已经安装
docker-compose 已经安装

脚本细节可直接访问github链接查看即可

II. 快速入门

如果你没基础,你可以从docker的基础命令看起,进行简单的操作,并且了解docker后台运行,以及在运行时候可以使用一些命令来提升学习兴趣,假如报错,可以使用日志来判断哪里有问题。当你简单了解后,可以进一步开始dockerfile的阅读。

假如你觉得这些都很乱,你可以尝试学习我在上面提到过的白话容器26章系列详细学习docker。

linuxea: docker后台运行模式
linuxea:docker中运行bash或其他命令
linuxea:docker命令如何过滤docker容器
linuxea:如何从命令行删除docker容器
linuxea:docker run的十个常用选项
linuxea:十个初学Dcoker cli指令
linuxea:有效使用docker logs查看日志
linuxea:docker标签的简单介绍

III. dockerfile编写指南

如果你只是浅用户,并不需要自己编写dockfile,你可以直接跳到docker网络学习docekr的ip和网络配置

linuxea:白话容器之简单制作镜像与hub使用(7)
linuxea:白话容器之使用dockerfile创建简单镜像1(18)
linuxea:白话容器之使用dockerfile指令使用2(19)
linuxea:白话容器之dockerfile CMD/entrypoint详解3(20)
linuxea:白话容器之dockerfile COPY与ADD的最佳实践(4)(21)
linuxea:白话容器之dockerfile health check使用(5)(22)
linuxea:白话容器之dockerfile ARG和ONBUILD使用(6)(23)

IV. dockerfile常见的使用技巧

linuxea:docker run与exec的使用差异
linuxea:docker不能忽视的.dockerignore用法
linuxea:dockerfile中的RUN指令对镜像大小的影响
linuxea:缩减docker镜像大小的5个步骤

V. docker网络

如果你也不用docker-compose对容器做简单的编排,仅仅就用一个容器尝试,你大可不必费时间看这么多,直接跳到端口暴露阅读使用即可。假如你有多个容器需要编排,你又只想简单的使用,除了docker网络里面的ip,你或许还要学习,我推荐你查看linuxea:如何使用docker-compose优雅的运行多个容器。相信你会喜欢的

linuxea:docker-compose设置静态ip和link与depends_on的区别
linuxea:白话容器之虚拟化网络与容器网络(8)
linuxea:白话容器之docker网络(9)
linuxea:白话容器之docker网络名称空间(10)
linuxea:白话容器之自定义docker0网络(13)
linuxea:白话容器之sock远程连接docker(14)
linuxea:白话容器之docker创建自定义的网桥(15)
Docker指定网桥和指定网桥IP

VI. docker端口暴露

如果对端口暴露对于你来说过于啰嗦,你直接查看linuxea:白话容器之联盟式容器与host网络模式(12),可以使用--net=host即可完成端口直接暴露,且不会隔离网络名称空间,倘若你是使用iptables,你会惊讶的发现,无论你怎么动防火墙,容器仍然可以使用。

但我仍然建议你查看上述docker网络的几篇,了解docker网络的原理,这在有些时候是有必要的。

linuxea:简单解释docker的端口和端口暴露(EXPOSE)
linuxea:白话容器之docker的4种端口暴露方式(11)
linuxea:白话容器之联盟式容器与host网络模式(12)

VII. docker仓库

如果你已经在本地使用了docker有很多,想构建自己的docker仓库,你可以大致阅读这几章节的文章,选择一个。不过我推荐你使用harbor,因为这是harbor对china支持最好的中文版。相信你会喜欢的。

忘了说,你已经使用了docker仓库,想必你会用上发布更新,在早期,我写过一篇jenkins+gitlab+docker快速部署发布回滚示例,这篇文章或许可以给你一些思路,尽管这看起来一点都不时髦。

linuxea:白话容器之Registry与Harbor的构建和使用 (26)
linuxea:docker仓库harbor-https的配置和使用
docker-Portusv2.1镜像仓库快速部署使用
docker-harbor0.5.0镜像仓库快速部署

VIII. docker多阶段构建镜像

多阶段构建可以加快构建速度,在某一些场景下,这必不可缺

linuxea:Distroless与多阶段构建
linuxea:docker多阶段构建Multi-Stage与Builder对比总结
linuxea:Docker多阶段构建与- target和--cache-from

IX. docker数据卷

linuxea:白话容器之docker存储卷概述(16)
linuxea:白话容器之docker存储卷使用的几种方式(17)

X. docker守护进程

docker为什么要用守护进程?

这似乎并不符合docker一贯的作风,我们知道,每个容器内ID为1的通常是启动容器的唯一一个进程,进程终止也就意味着容器终止。我们也知道,每个容器内进程ID为1的也是第一个启动的进程,支撑整个容器的框架的进程。我们提高过多次,容器内的进程必须是要在前台运行。

为什么?这似乎要去了解更多的知识框架来支持这种操作的合理性。

思考1:容器内ID为1的进程是容器内唯一一个在前台运行的进程,这样做的好处是什么? 当你从本章中的文章中了解到后你的思路将会跟明确

那么为什么有需要守护进程?当你真的需要守护进程的时候你应该了解到它的必要性了。简单的说,就是在容器内需要被运行多个进程的时候,你可能需要守护进程来管理。

linuxea:docker的supervisor与inotifywait的使用技巧

XI. docker-compose

linuxea:如何使用docker-compose优雅的运行多个容器

XII. docker变量传递

linuxea:compose中的变量传递与docker-createrepo构建
linuxea:如何使用docker和docker-compose的Entrypoint

XIII. docker安全

linuxea:docker与gVisor沙箱
linuxea:Distroless与多阶段构建
linuxea:docker特权模式与--cap-add和--cap-drop
linuxea:了解uid和gid如何在docker容器中工作
linuxea:docker容器中程序不应该以root用户身份运行
linuxea:docker卷和文件系统权限
linuxea:尽可能不在docker镜像中嵌入配置或者密码
linuxea:docker的安全实践

XIV. 初识docker

Docker简单安装和命令使用
Docker网络和数据卷
构建一个简单的docker镜像
使用dockerfile构建一个简单的镜像
Docker Hub简单使用
Docker数据管理-备份和恢复
Docker本地仓库简单使用

XV. docker构建示例

linuxea:构建redis4.0.11-Docker镜像技巧和思路
Docker alpine构建nginx
Docker分离构建lnmp部署wordpress
Docker部署Redis cluster3.2.5集群
Docker构建二进制mariaDB环境
docker构建subversion1.9.4
Docker构建NTP服务器
Docker一步步构建Tomcat思路

XVI. docker常见问题

linuxea:使用单个命令清理docker镜像,容器和卷
linuxea:如何设置docker日志轮换
linuxea:什么是docker <none><none> image(镜像)?

XVII. 其他docker相关

Centos7 Install rancher
linuxea:nginx容器优化方案(小米容器cpu检测)

XVIII. docker其他使用

jenkins+gitlab+docker快速部署发布回滚示例

XIX. docker工具

linuxea:如何复现查看docker run参数命令

XX. swarm

linuxea:Docker swarm集群入门简单使用(1)
linuxea:Docker swarm集群节点服务更新(2)
linuxea:Docker swarm集群节点路由网络(3)
linuxea:docker config的配置使用

XXI. docker修改容器时间

linuxea:如何单单修改docker容器的系统时间

XXII. docker资源限制

linuxea:白话容器之CPU与内存资源限制概述(24)
linuxea:白话容器之CPU与内存资源限制测试(25)

2 分享

您可以选择一种方式赞助本站

支付宝扫码赞助

支付宝扫码赞助

日期: 2019-05-27分类: Docker

标签: docker

发表评论