十分钟入门Docker,带你成为Docker王者之篇一

不啰嗦,不废话,写代码,一把梭,干就完了。linux

为啥写这几篇文章,主要是解决如下两个问题,不知道你们是否遇到过没有?git

  1. 小伙伴在平常开发或者看书学习中,确定据说过Docker 这个词。卧槽,这是啥?是干啥的?为啥你们都说它牛逼?
  2. 在实际的开发中,有没有遇到这种困扰:你本地搭建的环境好好的,可是换一台机器从新搭环境,就可能出现各类千奇百怪的问题;或者让你的小伙伴运行你的程序,他那边又会出来各类你都没见过的诡异bug。

那么,基于以上两点,皮爷给你们用四五篇短文章来讲一下Docker怎么玩,争取用最简单,最简短,最通俗易懂的姿式来让你快速上手,彻底能够应付工做和了解后入本身应该如何深刻学习。github

在文章开头先给你们列出来咱们的目标:docker

  • 会安装Docker,而且能跑起来Docker。【青铜等级
  • 学会找镜像(Image),学会运行和管理镜像(Image)和容器(Container)。【白银等级
  • 学会建立本身的镜像,而且分享给他人使用。【黄金以上
  • 学会使用docker-compose来一次性启动多个镜像。【铂金钻石

就先给你们搞到铂金水平吧。由于倒了铂金水平,就彻底能够本身放手玩王者了,呃,不对,是Docker。因此,咱们赶忙开始教学吧。ubuntu

Docker 是啥?

网上的那些官话我也不想多说,什么容器啊镜像啊之类的。皮爷在这里给初学者举两个简单形象的例子,你就会马上明白Docker是啥了。windows

  1. Docker就像是你电脑里面安装了一个冰箱,这个冰柜提供制做形状各异的雪糕模具(这个就是镜像Image),而后你能够用这些模具来制做各类各样的雪糕(雪糕也就是container)。作出来的雪糕,支持访问,能够查看雪糕内部的各类结构。
  2. 经过Docker,你能够将本身的雪糕模具给了其余的小伙伴或者上传到网上,而后其余的小伙伴能够用你的模具,在他的电脑里面的冰柜(Docker)中,就能够制做出来和你的如出一辙的雪糕。

理解起来简单不?这样的解释骚不?这里彻底是为了给初学者刻画一下Docker的轮廓是啥,不作具体深刻的原理讲解。若是有想要深刻了解原理的同窗,建议去官方文档学习:centos

https://www.docker.com/resources/what-container

【青铜】安装Docker和Docker-compose

Docker能够在不一样的系统里安装:windows,Linux和Mac OS。这里就简单的和你们说一下安装步骤。api

Ububtu 安装 Docker

参考地址:
bash

https://docs.docker.com/v17.12/install/linux/docker-ce/ubuntu/

安装Docker: 网络

# step 0: 首先检查系统中是否已经安装了Docker:$ docker --version# step 1: 若是没有安装,依次输入一下命令:$ sudo apt update$ sudo apt install docker.io# step 2: 以后就能够再次检查Docker版本:$ docker --versionDocker version 18.09.7, build 2d0084d复制代码

出现上面最后一行字就表明安装Docker成功了。

接下来,安装Docker-compose。

参考地址:

https://docs.docker.com/compose/install/

# step 0: 检查系统中是否已经安装了Docker-compose$ docker-compose --version# step 1: 执行如下命令安装docker-compose$ sudo apt install docker-compose# step 2: 安装成功以后,检查一下Docker-compose版本$ docker-compose --versiondocker-compose version 1.8.0, build unknown复制代码

出现上面一行字,就表明Docker-compose安装成功了。

CentOS 安装 Docker

参考地址:

https://docs.docker.com/v17.12/install/linux/docker-ce/centos/

安装Docker:

# step 0: 安装必要的一些系统工具$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2# Step 1: 添加软件源信息$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# Step 2: 更新并安装Docker-CE$ sudo yum makecache fast$ sudo yum -y install docker-ce# Step 3: 开启Docker服务$ sudo service docker start复制代码

安装Docker-compose能够参考:https://docs.docker.com/compose/install/

# step 1$ sudo curl -L https://github.com/docker/compose/releases/download/[版本号]/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose# step 2$ sudo chmod +x /usr/local/bin/docker-compose# step 3: 安装完成后,查看版本$ docker-compose version复制代码

Windows 和 Mac 安装Docker:

因为Windows和Mac均采用安装包的形式安装,属于傻瓜安装,这里就很少说了。只不过这两个系统都有最低要求,必定要看好,

最低要求

  • Windows最低是Windows 10
  • Mac 最低是 macOS El Capitan 10.11

具体的安装能够参考:
Mac:

https://docs.docker.com/v17.12/docker-for-mac/install/

Windows:
https://docs.docker.com/v17.12/docker-for-windows/install/

检查版本:

$ docker versionClient: Docker Engine - Community Version:           18.09.2 API version:       1.39 Go version:        go1.10.8 Git commit:        6247962 Built:             Sun Feb 10 04:12:39 2019 OS/Arch:           darwin/amd64 Experimental:      falseCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?复制代码

咋运行Docker?

首先不肯定Docker是否启动,能够经过docker ps命令来看一下docker是否已经启动:

$ docker ps# 未启动长这个样子Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?# 启动就会列出来运行的实例(由于这里没有跑实例,因此是空的)CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES复制代码

若是发现Docker没有启动,则须要先启动Docker:

CentOs:$ sudo systemctl start dockerWindows和Mac OS则须要启动 Docker Desktop复制代码

启动以后,咱们直接运行 docker run hello-world 看看:

能够看到Docker完美启动,这个时候 docker ps -a 能够看到已经中止的容器:

好的,目前 Docker 的只是这一篇就先说这么多,在接下来的文章里,皮爷会给你们讲 Docker 的更过经常使用命令和使用方法。

做业小练手

若是你已经成功安装好了 Docker,不妨试一试皮爷的 Docker Image 跑起来的效果:

$ docker run swyftg/3dmspider复制代码

若是遇到报错:

Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)复制代码

这个问题多是由于你的电脑开了威屁嗯,梳理一下你的网络,而后再重启一下 Docker 就能够了。

你们能够试一下,看看跑起来会出现什么结果?
下一篇文章,皮爷主要给你们讲一下在 Docker 中怎么找 Image,怎么运行和管理 Container 和 Image。

喜欢的能够关注公号『皮爷撸码』,回复『代码』,其中 DC001 就是 Docker 系列的代码,你们能够学习一下。

相关文章
相关标签/搜索