在此之前,我记录了很多章关于docker使用的基础,从安装到编写,其中还有一些常见的使用技巧,这其中还包括一些docker-compsoe的简单操作案例,其中有一些由于编写的时间太久,bug很多,但用来学习绰绰有余,但也仅供参考。
现在,我将所有的文章汇聚在一个页面中方便查看。
假如你是一个docker新手,没有太多时间,你不妨从本章入手学习,假如你想详细了解docker,那我推荐你查看我记录的白话容器26章系列详细学习docker。
如果你已经阅读了这所有的文章,你可以查看我的github上的dockerMops,在这个项目中,有我学习的从之前到现在私下编写的一些镜像原文件。请不要误会,这一些仅仅只是为了更好的理解docker,仅供参考。如果你在生产中使用,请妥善思考如何使用。
如果文章中出现错误,请留言或者QQ讨论群:47355295 ,加群注明来意
这是一篇似乎多余的文章,因为这里提到的都是些基础。这是因为考虑到很多新手朋友接触docker学习的困难,我花了一个下午断断续续写好,它不需要你付费,它仅仅只希望可以帮助到大家。正所谓,取自网络,回馈网络。请不要吝啬你的赞美
安装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链接查看即可
快速入门
如果你没基础,你可以从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标签的简单介绍
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)
dockerfile常见的使用技巧
linuxea:docker run与exec的使用差异linuxea:docker不能忽视的.dockerignore用法linuxea:dockerfile中的RUN指令对镜像大小的影响linuxea:缩减docker镜像大小的5个步骤
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
docker端口暴露
如果对端口暴露对于你来说过于啰嗦,你直接查看linuxea:白话容器之联盟式容器与host网络模式(12),可以使用--net=host即可完成端口直接暴露,且不会隔离网络名称空间,倘若你是使用iptables,你会惊讶的发现,无论你怎么动防火墙,容器仍然可以使用。
但我仍然建议你查看上述docker网络的几篇,了解docker网络的原理,这在有些时候是有必要的。
linuxea:简单解释docker的端口和端口暴露(EXPOSE)linuxea:白话容器之docker的4种端口暴露方式(11)linuxea:白话容器之联盟式容器与host网络模式(12)
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镜像仓库快速部署
docker多阶段构建镜像
多阶段构建可以加快构建速度,在某一些场景下,这必不可缺
linuxea:Distroless与多阶段构建linuxea:docker多阶段构建Multi-Stage与Builder对比总结linuxea:Docker多阶段构建与- target和--cache-from
docker数据卷
linuxea:白话容器之docker存储卷概述(16)linuxea:白话容器之docker存储卷使用的几种方式(17)
docker守护进程
docker为什么要用守护进程?
这似乎并不符合docker一贯的作风,我们知道,每个容器内ID为1的通常是启动容器的唯一一个进程,进程终止也就意味着容器终止。我们也知道,每个容器内进程ID为1的也是第一个启动的进程,支撑整个容器的框架的进程。我们提高过多次,容器内的进程必须是要在前台运行。
为什么?这似乎要去了解更多的知识框架来支持这种操作的合理性。
思考1:容器内ID为1的进程是容器内唯一一个在前台运行的进程,这样做的好处是什么? 当你从本章中的文章中了解到后你的思路将会跟明确
那么为什么有需要守护进程?当你真的需要守护进程的时候你应该了解到它的必要性了。简单的说,就是在容器内需要被运行多个进程的时候,你可能需要守护进程来管理。
linuxea:docker的supervisor与inotifywait的使用技巧
docker-compose
linuxea:如何使用docker-compose优雅的运行多个容器
docker变量传递
linuxea:compose中的变量传递与docker-createrepo构建linuxea:如何使用docker和docker-compose的Entrypoint
docker安全
linuxea:docker与gVisor沙箱linuxea:Distroless与多阶段构建linuxea:docker特权模式与--cap-add和--cap-droplinuxea:了解uid和gid如何在docker容器中工作linuxea:docker容器中程序不应该以root用户身份运行linuxea:docker卷和文件系统权限linuxea:尽可能不在docker镜像中嵌入配置或者密码linuxea:docker的安全实践
初识docker
Docker简单安装和命令使用Docker网络和数据卷构建一个简单的docker镜像使用dockerfile构建一个简单的镜像Docker Hub简单使用Docker数据管理-备份和恢复Docker本地仓库简单使用
docker构建示例
linuxea:构建redis4.0.11-Docker镜像技巧和思路Docker alpine构建nginxDocker分离构建lnmp部署wordpressDocker部署Redis cluster3.2.5集群Docker构建二进制mariaDB环境docker构建subversion1.9.4Docker构建NTP服务器Docker一步步构建Tomcat思路
docker常见问题
linuxea:使用单个命令清理docker镜像,容器和卷linuxea:如何设置docker日志轮换linuxea:什么是docker <none><none> image(镜像)?
其他docker相关
Centos7 Install rancherlinuxea:nginx容器优化方案(小米容器cpu检测)
docker其他使用
jenkins+gitlab+docker快速部署发布回滚示例
docker工具
linuxea:如何复现查看docker run参数命令
swarm
linuxea:Docker swarm集群入门简单使用(1)linuxea:Docker swarm集群节点服务更新(2)linuxea:Docker swarm集群节点路由网络(3)linuxea:docker config的配置使用
docker修改容器时间
linuxea:如何单单修改docker容器的系统时间
docker资源限制
linuxea:白话容器之CPU与内存资源限制概述(24) linuxea:白话容器之CPU与内存资源限制测试(25)