vlambda博客
学习文章列表

别再说不了解docker了,快进来看看吧



每个你难熬的夜晚,都有二哥陪着你





Years may wrinkle the skin, but to give up enthusiasm wrinkles the soul.

岁月悠悠,衰微只及肌肤;热忱抛却,颓废必致灵魂。





前言



别再说不了解docker了,快进来看看吧

为什么需要Docker 

官方介绍(中文版):http://www.docker-cn.com/what-docker#/developers


Docker 是世界领先的软件容器平台。

  • 开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。

  • 运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。

  • 企业利用 Docker 可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为 Linux 和 Windows Server 应用发布新功能。


环境(切换/配置)麻烦

一般我们写程序的,能接触到好几个环境:

  • 自己写代码的环境叫做开发环境。

  • 给测试去跑的环境叫做测试环境。

  • 测试完可以对外使用的叫做生产环境。


其实我们在学习编程中,很多时间都浪费在“环境”上:

  • 如果我现在重装了系统,我想要跑我的war/jar包,我得去安装一下JDK、Tomcat、MySQL等配置各种的环境变量才能跑起来。

  • 开开心心地跟着博主给出的步骤去写Demo,但总是有Bug。(这里我将版本/依赖也归纳在环境的范畴里边)。

  • 好不容易在测试环境下跑起来了,在生产环境就各种出错!

  • 跟着教学视频做分布式/集群的项目,跑一堆的虚拟机,每个虚拟机都要安装对应的环境。


所以就有个笑话《千万不要跟程序员说,你的代码有bug》:

  • 他的第一反应是你的环境有问题,第二就是你是傻逼不会用吧。

  • 你要跟他这么说:“这个程序运行的怎么运行的跟预期不一样,是我操作有问题吗?”。

  • 这货就会第一反应“我擦,这是不是出bug了?”


应用之间需要隔离

比如我写了两个应用(网站),这两个应用部署在同一台服务器上,那可能会出现什么问题?

  • 如果一个应用出现了问题,导致CPU占100%。那另一个应用也会受到关联,跟着一起凉凉了。

  • 这两个应用是完全不同技术栈的应用,比如一个PHP,一个.NET。这两个应用各种的依赖软件都安装在同一个服务器上,可能就会造成各种冲突/无法兼容,这可能调试就非常麻烦了。

别再说不了解docker了,快进来看看吧
别再说不了解docker了,快进来看看吧
别再说不了解docker了,快进来看看吧
docker简介
别再说不了解docker了,快进来看看吧
别再说不了解docker了,快进来看看吧
别再说不了解docker了,快进来看看吧


docker的三大核心概念

  • 镜像

  • 容器

  • 仓库

核心概念:

  • docker本身并不是容器,它是创建容器的工具,是应用容器引擎

  • docker技术使用linux内核和内核功能(例如 Cgroups和namespaces)来分隔进程,以便各进程相互独立运行

  • 由于namespaces 和 cgroups 功能仅在 linux上可用,因此容器无法在其他操作系统上运行,那么docker如何在windows或者macOS上运行呢?docker实际上 使用了一个技巧,在非linux操作系统上安装linux虚拟机,然后再虚拟机内运行容器

  • 镜像是一个可执行的包,其包含运行应用程序所需的代码、运行时、库、环境变量、和配置文件,容器是镜像运行时的实例


别再说不了解docker了,快进来看看吧
别再说不了解docker了,快进来看看吧
别再说不了解docker了,快进来看看吧
docker安装
别再说不了解docker了,快进来看看吧
别再说不了解docker了,快进来看看吧
别再说不了解docker了,快进来看看吧

1.安装步骤建议参考官网 https://docs.docker.com/engine/install/centos/

选择合适的进行安装

别再说不了解docker了,快进来看看吧

2.配置镜像加速器

为什么要配置镜像加速器呢?因为docker的仓库服务器是在国外,国内访问会比较慢。这里推荐两个国内的镜像加速器

  • 阿里云

  • 网易163

我这里就以阿里云的镜像加速器为例

首先我们登录阿里云,找到‘容器镜像服务‘

别再说不了解docker了,快进来看看吧

再找到 ‘镜像加速器’

别再说不了解docker了,快进来看看吧

如果一些顺利,那我们的docker就已经安装完成了

别再说不了解docker了,快进来看看吧
别再说不了解docker了,快进来看看吧
别再说不了解docker了,快进来看看吧
docker命令
别再说不了解docker了,快进来看看吧
别再说不了解docker了,快进来看看吧
别再说不了解docker了,快进来看看吧

授人以鱼不如授人以渔

在说docker命令之前,我们先简单回顾下linux下如果不知一个命令的用法,我们怎么办呢?对,没错就是问 man!

别再说不了解docker了,快进来看看吧

通过man这个命令就可以查看指定命令的所有用法,那我们就看看docker这个命令到底怎么用吧

别再说不了解docker了,快进来看看吧

先查看下版本 docker -v

别再说不了解docker了,快进来看看吧

使用docker version命令可以查看更加详细的版本信息

别再说不了解docker了,快进来看看吧

既然官方都说了想查看具体的命令就运行 docker --help 那我们就试试吧

别再说不了解docker了,快进来看看吧

第一次见,有没有被这么多命令给吓住了?不要担心,接下来我会为小伙伴们一一解答


docker命令格式

docker [Options] Command

  • 方括号中的选项参数可以省略

  • 命令分为两种 1.管理docker引擎的命令,2.docker 的普通 命令

  • 如果遇到命令的参数不清楚,可以使用 docker command --help

  • 因为命令过多,本篇文章不可能一一讲述,只讲述一些常用的命令,至于剩下的就靠小伙伴们私下去研究了


docker pull 从仓库下载镜像(因为我们配置了阿里云的镜像加速器,所以我们这里的镜像其实是从阿里云的镜像仓库中下载下来的)

别再说不了解docker了,快进来看看吧

docker images 查看已下载的镜像

别再说不了解docker了,快进来看看吧

docker run 运行镜像

别再说不了解docker了,快进来看看吧

这些内容就是 hello-world镜像中输出的,docker run这个命令非常常用,而且可以指定很多参数,我们使用 docker run --help查看一下

别再说不了解docker了,快进来看看吧

docker ps 查看运行的容器

别再说不了解docker了,快进来看看吧

docker ps 默认查看正在运行的容器,docker ps -a 查看所有运行过的容器

docker rm 删除容器

别再说不了解docker了,快进来看看吧


docker rmi 删除镜像

别再说不了解docker了,快进来看看吧


本期内容主要以 docker 基础篇为主

下期内容:dockerfile


别再说不了解docker了,快进来看看吧
END
别再说不了解docker了,快进来看看吧


如果你从本文学习到了一些的话,就不要白嫖啦,给作者点个赞,点个在看,谢谢啦~

因为你的分享、点赞、在看
我足足的精气神儿!