【软妹带你学技术】十一份Docker福利包疯狂砸来,看官们还请轻戳呦

简介: 十一份Docker福利包疯狂砸来,看官们还请轻戳呦。

如果你是冲着软妹来的话,sorry恐怕你注定是要失望啦。不过,为了广大男同胞的身心健康,还是鼓起勇气决定爆照一张!!!

 60db4eb9cf1cc23bb8c6387d545af987cec39a72

哈哈哈哈哈哈是不是卡哇伊内!口水收一收,再可爱也不是你家的(话说小编我Search的时候,那啥口水没收住,好丢脸......)毕竟想象是美好的,现实是骨感的,咱们还是回归当下,脚踏实地做人做事!Come on,回咱们的狗窝去T_T......

1a9b274c5849aeb0f853de8d786537bdf4ef833f 

好了好了,思绪收一收,穿上我们的盔甲、执起我们的电脑,在泡面声声中进入今天的技术谈(妹纸再美看看就好!唯有手中的笔、脑中的知识会永远陪伴你我_→)......

上一次咱们的技术小火车(这个题目是很单纯滴)如约而至,从这期起咱们让软妹纸带我们一起开启新征程!Lets go

时下大热的容器技术,引无数英雄折尽小蛮腰,如过江之鲫层出不穷。今儿个,咱们就来窥探一番它的真面目——管它是实锤还是虚胖,一探定能知晓。本文中,就让我们一起拨云见雾、釜底抽薪、扒皮抽筋......呃不管了,去探寻Docker的庐山真面目。前方持续高能,非战斗人员请速速撤离!

Docker基础之一: Docker架构

Docker使用C-S架构,其客户端同Docker Daemon进行交互,主要的工作通过daemon来完成,包括拉取镜像、编译镜像、运行容器、发布容器等。Docker clientdaemon可以运行在同一个系统上,也可以通过远程方式进行访问。Docker clientdaemon之间是在 socket 上通过RESTful API来进行交互的。

 93f3bbb617d377901980a7ae2821d4c6df1ff542

Docker架构图

那么Docker如何工作呢?通过之前的介绍,咱们就可以知道:

l. 我们可以自己编译Docker Image来打包应用;

2.我们可以从Docker Image创建容器,并在其中运行应用程序;

3. 我们可以通过Docker Hub或私有的Registry来分享Docker Image 接下来,我们来看如何将之前的这些元素整合起来运行。

此外,关于底层的NamespacesControl GroupsUnion File System,容器格式等技术我们就不再一一展开叙述了。

Docker基础之二: Linux快速入门

由于Docker是的容器都依赖于Linux内核,因此这一节主要是快速简单的介绍一下Linux,如果你对Linux比较熟悉,可略过。

为什么要使用Linux?理由多多!

1. 本身开源免费;

2. 支持众多开源的软件,诸如mysql, apache, mongodb, nodeJS等;

3. 基本上90%以上的互联网公司都使用linux作为后端服务器;

4. 云主机大多数都是基于linux系统。

But选取什么发行版本呢?

Linux包含了很多的发行版本,包括ubuntucentosredhatfedera等等,但是他们都是基于Linux kernel,各发行版本都会做相应包装、优化和简化,但是基本上内核版本不会有太大差异。根据我的经验,推荐使用ubuntu或者centosUbuntu的优点是:

1. 内核更新及时;

2. 软件安装和更新方便;

3.GUI简单实用 CentOS就是Red Hat Enterprise 的开源版本,也是不错的选择,考虑到UbuntuDocker的完美支持,我一般推荐使用Ubuntu

ubuntu安装上,启用root用户——使用vim——配置网络——启用SSH Server——通过客户端连接linux主机——免密码登录linux主机——安装软件这一系列过程中的详细细节咱们欢快地跳过吧。

Docker基础之三: 安装DockerHelloWorld

Docker最核心的程序是Docker Engine,根据参数,它既可以作为后台daemon运行,也可以作为命令行工具使用。下面咱们区分不同的安装环境,讨论在LinuxUbuntuCentOSMac上对应的问题。

1. Linux上安装

Docker本身是基于linux内核的,因此只要内核版本足够新,一般大于3.10左右,就可以运行。各种系统的安装方式基本相同。

2. Ubuntu上安装

在所有系统中,Dockerubuntu的支持是最好的,因此如果使用docker,我推荐都适用ubuntu系统。Ubuntu系统的可视化、安装以及内核的更新,我认为都是最好的。Docker支持的Ubuntu系统:

1. Ubuntu Wily 15.10

2. Ubuntu Vivid 15.04

3. Ubuntu Trusty 14.04 (LTS)

4. Ubuntu Precise 12.04 (LTS) 环境要求:

5. 64位系统

6. 3.10以上linux内核,具体可以根据uname-r进行查看

3. CentOS上安装

CentOS上安装Docker有一定的版本要求,CentOS 7.X及其以后版本&3.10以后版本。

4. Mac上安装

Mac OSXDocker通过Docker Toolbox来进行安装,Docker ToolboxDocker公司的一个工具包,里面包括:

1. Docker Machine: 运行docker-machine程序;

2. Docker Engine: Docker可执行程序;

3. Docker Compose: docker-compose程序;

4. Kitematic: Docker GUI

5. 包含预定义的shell脚本,用于命令行运行环境;

6. Oracle VM VirtualBox

在这四类安装环境下,详尽细节各不相同,咱们先简要概述到这咯。

Docker基础之四: Docker入门

首先我们检查Docker是否安装成功,步骤可参考如下:

1.下载一个镜像

2.运行一个可交互的shell终端

3.运行一个长时间的程序

4.查看容器

5.容器操作

6.导出服务端口

7.提交(保存)容器到image

其他的我们接着跳跳跳。

Docker基础之五: 使用Docker容器

我们将从运行一个简单的Hello world入手,来讲解如何使用容器。

1.运行Hello World

2.运行一个可交互的容器;

3.在容器中运行一个后台守护进程。

Docker基础之六: Docker基础命令

容器相关的命令有哪些?我们一起来回顾。

1. docker ps : 查看容器列表;

2. docker logs:查看容器的日志;

3. docker stop:停止容器;

4. Docker ClientDocker ClientDocker Daemon实际使用的是同一个二进制程序,通过docker --help命令可以直接查看docker的所有命令及选项;

5. 通过容器来运行web应用:容器可以运行任何程序,那么一个主要的用途就是运行web应用,并对外提供服务。

Docker基础之七: 镜像操作

镜像(Image)是容器的基础。当你运行docker run的时候,你会指定一个Image来运行。比如,最基本的ubuntu镜像和training/webapp镜像。可以通过docker run来运行镜像:

1. 获取新的Image

2. 查找Image

3. 更新自己的Image

4. 根据Dockerfile编译镜像;

5. 删除Image

Docker基础之八: 容器的网络

根据之前的教程我们只是运行了简单的应用程序。之前我们编译了自己的image,在本节中我们将讲述如何管理容器的网络:

1.容器命名;

2.创建自己的桥接网络;

3.添加容器到网络。

Docker基础之九: 管理容器的数据

到目前为止,我们已经介绍了Docker的一些基本概念,如:容器的操作,镜像的操作和网络的操作等。在本节,我们将介绍如何管理容器内部的数据,以及容器间的数据交互。我们将介绍如何创建:

1. 数据卷

2. 数据型容器

数据卷是一个经过特殊设计的文件夹,提供给容器使用。数据卷并不由UnionFS管理,因此数据卷可以用作持久化和数据分享。Docker删除容器的时候,不会自动删除数据卷,因此当你使用数据卷的时候也要注意不要产生过多的垃圾数据。此外,如果你希望在容器间共享卷,那么还可以使用数据型容器。

关于数据备份、还原和迁移以及其他注意事项,我们就先略过啦。

Docker基础之十: 存储镜像到Docker Hub

到目前为止,我们已经学习了Docker的基本用法,包括拉取镜像、运行容器、编译镜像文件等等。接下来,我们将学习如何通过Docker hub来简化操作并提高工作效率。Docker HubDocker的主仓库,由Docker公司进行维护。这个仓库里面包含了系统的官方镜像,同时提供简单的用户认证信息,以及其他的附属功能。默认情况下,这个仓库是免费的,但是你的所有镜像也是公开的。跟Github类似,如果你需要一个私有的仓库,那么需要付费。

1. Docker Hub相关的命令

Docker本身和仓库相关的命令包括docker searchpullloginpush

1. 用户创建和登录;

2. 搜索镜像;

3. 下载指定版本的镜像。

2. 提交镜像到Docker Hub

1. 推送镜像到Docker Hub

2. Tag镜像。

Docker基础之十一: 镜像操作(Dockerfile

Docker可以通过Dockerfile的指令来编译ImageDockerfile的主要好处是可以通过极少的空间来动态构建一个镜像,但是对国内用户而言,通常是比较通过的,因为下载国外的资源都比较慢。下面送上Dockerfile参考手册:

1.如何使用;

2. Dockerfile格式;

3. 环境变量替换指令;

4. dockerignoe file

5. FROM

6. MAINTAINER

7. RUN

上面的文字不足以表达Docker技术的精髓,更多深藏其中的宝藏还是留待小伙伴们一起铲铲铲吧!(请忽略我激动得无以复加神经错乱的表达......)更多详情请戳原文链接哦,么么扎!

Docker基础之一: Docker架构

https://yq.aliyun.com/articles/130

Docker基础之二: Linux快速入门

https://yq.aliyun.com/articles/131

Docker基础之三: 安装dockerHelloWorld

https://yq.aliyun.com/articles/132

Docker基础之四: Docker入门

https://yq.aliyun.com/articles/133

Docker基础之五: 使用Docker容器

https://yq.aliyun.com/articles/134

Docker基础之六: Docker基础命令

https://yq.aliyun.com/articles/135

Docker基础之七: 镜像操作

https://yq.aliyun.com/articles/136

Docker基础之八: 容器的网络

https://yq.aliyun.com/articles/137

Docker基础之九: 管理容器的数据

https://yq.aliyun.com/articles/138

Docker基础之十: 存储镜像到Docker Hub

https://yq.aliyun.com/articles/139

Docker基础之十一: 镜像操作(Dockerfile

https://yq.aliyun.com/articles/140

相关文章
|
1月前
|
Java Go 开发者
Docker容器技术简介及其与Go语言的结合点
【2月更文挑战第23天】本文首先概述了Docker容器技术的核心概念和优势,接着探讨了Go语言与Docker容器技术的结合点。通过阐述Docker的轻量级、可移植性和版本控制等特性,以及Go语言在容器化应用中的优势,本文旨在说明两者结合能够实现更高效、灵活的应用开发和部署。
|
1月前
|
Java Shell Docker
Docker启动后怎样运行jar包文件
Docker启动后怎样运行jar包文件
|
1月前
|
Kubernetes 云计算 开发者
云计算中的容器化技术:Docker与Kubernetes的实践
云计算中的容器化技术:Docker与Kubernetes的实践
72 0
|
1月前
|
前端开发 Java 网络安全
解决docker中运行的jar包连不上前端程序
解决docker中运行的jar包连不上前端程序
|
1月前
|
Java 数据库连接 数据库
解决docker中运行的jar包连不上数据库
解决docker中运行的jar包连不上数据库
|
2月前
|
运维 Java Linux
深入解析:使用Docker容器化技术提升Java应用的部署效率
在快速迭代的软件开发周期中,如何保证应用的快速、一致和可靠部署成为了开发团队需要面对的重大挑战。本文将探讨如何利用Docker容器化技术,结合Java应用,实现高效、一致的部署流程。我们将从Docker的基本概念出发,详细介绍将Java应用容器化的步骤,包括创建Dockerfile、构建镜像以及运行容器等关键环节,并通过示例代码加以说明。此外,本文还将讨论在使用Docker部署Java应用时可能遇到的常见问题及其解决策略,旨在为读者提供一种提升部署效率、优化开发流程的有效方法。
301 2
|
2月前
|
虚拟化 开发者 Docker
深入浅出:利用Docker容器化技术加速Web开发流程
在本篇文章中,我们将探讨Docker容器化技术如何为Web开发带来革命性的效率提升。通过具体案例和实操示范,我们不仅会介绍Docker的基本概念和工作原理,还将深入分析如何利用Docker容器化技术简化开发环境的搭建、提高应用的可移植性以及加快部署速度。本文旨在为读者提供一种全新的视角,理解并实践如何通过Docker优化现代Web开发流程,无论是对于个人开发者还是团队项目,都将带来前所未有的便捷和效率。
29 0
|
2月前
|
负载均衡 开发者 Docker
深入浅出:利用Docker容器化技术提升Web开发效率
在快速变化的软件开发领域,开发者面临着环境一致性和项目部署效率的双重挑战。Docker作为一种先进的容器化技术,为解决这些问题提供了优雅的解决方案。本文将探讨Docker的核心概念、优势以及如何在Web开发中应用Docker来提升开发和部署的效率。通过实际案例分析,读者将了解到如何构建、分享和运行Docker容器,以确保开发环境的一致性,并加速Web应用的交付过程。
|
3月前
|
Linux Docker Python
Python实战技术 - Python虚拟隔离环境 和 Docker技术
Python实战技术 - Python虚拟隔离环境 和 Docker技术
197 0
|
3月前
|
存储 运维 Linux
精彩推荐 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)
在使用Docker时,管理维护工作可能会显得复杂。然而,实际上,Docker提供了许多便捷且人性化的工具,这些工具的使用技巧可以大大简化维护工作,并提升效率。通过掌握这些技巧,你不仅能够更轻松地管理Docker环境,还能展现出专业的能力。接下来我们就给大家介绍一下对于我在工作当中对于Docker容器使用的技术实战总结
48 2
精彩推荐 | 【深入浅出Docker原理及实战】「原理实战体系」零基础+全方位带你学习探索Docker容器开发实战指南(实战技术总结)