前言

上一章节,已经简单讲解了Docker相关方面的知识,相信大家已经有个概念了。这章节开始,开始进行实践操作。和学习任何一门语言一样,我们今天也开始从Hello,World开始~

Docker不了解的,可查看下第一章:Docker简介

CentOS系统Docker安装

现在的Docker已经能支持WindowsMacLinux的各大操作系统了。但在生产阶段,应该Linux才是主流。其他的平台还是主要以学习为主。但对于Linux平台而言,又有CentOSDebianFedoraUbuntu等等不同的发行版。不同的发行版安装过程是稍有不同的。本章节主要是以CentOS版本进行讲解,安装的是社区版Docker CE版,其他的发行版可自行搜索下,或者查看其官方安装文档,里面有详细说明的。对于Windows,之前有安装过,不好用。而Mac,没有环境呀。

前提条件

To install Docker CE, you need a maintained version of CentOS 7. Archived versions aren’t supported or tested.

The centos-extras repository must be enabled. This repository is enabled by default, but if you have disabled it, you need to re-enable it.

The overlay2 storage driver is recommended。

请容许我用蹩脚的翻译说明大致说明下:需要一个发行版的CentOS 7(64位)版本,不支持测试或者存档版本。同时需要开启centos-extras软件源,建议使用overlay2存储驱动(这个是真心不懂,求知道的大神答疑,谷歌后是说这样模式能提高性能,加快速度)。

所以,大家在安装前可以检查下这些条件是否满足,以下是本章节演示的阿里云ECS的系统版本:

LSB Version: :core-4.1-amd64:core-4.1-noarch

Distributor ID: CentOS

Description: CentOS Linux release 7.4.1708 (Core)

Release: 7.4.1708

Codename: Core

使用yum安装

因为Docker已经默认在centos-extras源了,所以可以直接使用yum命令进行安装。

题外话:对于已经安装了旧的版本(dockerdocker-engine)的同学,可以利用以下命令进行卸载。

$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine

安装命令

sudo yum install docker-ce

**或者 **

sudo yum -y install docker-ce

题外话:加没加-y的区别:如果使用yum install xxxx,会找到安装包之后,询问你Is this OK[y/d/N],需要你手动进行选择。但是如果加上参数-y,就会自动选择y,不需要你再手动选择!

yum -y install 包名(支持*) :自动选择y,全自动
yum install 包名(支持*) :手动选择y or n

回车后,就等着安静的下载吧。

控制台输出:

#前面大段忽略...
Dependency Updated:
audit.x86_64 0:2.8.1-3.el7 audit-libs.x86_64 0:2.8.1-3.el7 libselinux.x86_64 0:2.5-12.el7
libselinux-python.x86_64 0:2.5-12.el7 libselinux-utils.x86_64 0:2.5-12.el7 libsemanage.x86_64 0:2.5-11.el7
libsepol.x86_64 0:2.5-8.1.el7 policycoreutils.x86_64 0:2.5-22.el7 selinux-policy.noarch 0:3.13.1-192.el7_5.4
selinux-policy-targeted.noarch 0:3.13.1-192.el7_5.4 Complete!

友情提示:若安装过程中,提示类似No package docker-ce available.字样时,可尝试按一下步骤进行软件源的更新。

1.安装基础包

sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

其中yum-utils提供yum-config-manager功能,另外两个是devicemapper驱动依赖。

2.设置yum源(由于国内环境,这里直接使用了阿里云镜像地址)

sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.之后正常应该就可以了,若安装后还提示类似的:

https://download.docker.com/linux/centos/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found

字眼,可查看下/etc/yum.repos.d目录下的docker-ce.repo文件是否包含

https://download-stage.docker.com字眼,直接替换成http://mirrors.aliyun.com/docker-ce(网友提供,未发现此问题。出问题时,可检查下),或者目录中有包含download.docker.com_linux_centos_.repo(未替换阿里云镜像加了官网的源地址是出现)文件的,删除此文件即可。

另外,若需要安装特定版本时,可查看下版本列表:

yum list docker-ce --showduplicates | sort -r

比如,选定了18.03.1.ce-3.el7(第三行),则运行

# yum install <FULLY-QUALIFIED-PACKAGE-NAME>
# 注意:包名是截取第一列和第二列的部分值组合而成
sudo yum install docker-ce-18.03.1.ce

启动docker

sudo systemctl start docker

然后输入一下命令进行验证:

sudo docker info

说明已经安装成功了。

安装阿里云加速器

安装成功后,还需要安装下加速器,原因你懂的。这里直接使用阿里云的镜像,大家可在阿里云控制台进行查看。

查看目录:

控制台首页(产品与服务)-->容器镜像服务--->镜像加速器

文件/etc/docker/daemon.json(不存在,手动创建下daemon.json文件),内容为:

{
"registry-mirrors": ["https://镜像地址.mirror.aliyuncs.com"]
}

第一个Docker应用

以上步骤完成后,我们就能开心的使用Docker了。这里我们直接运行官方提供的Hello,world镜像

sudo docker run hello-world

当出现以下字眼时,表明运行成功了。

Hello from Docker!
This message shows that your installation appears to be working correctly.

此时,查看镜像列表,就可以看见此镜像信息了。

总结

本章节主要是介绍了下Docker的安装和运行了第一个Docker应用。总体来说是比较简单的,主要可能遇到的问题还是在yum源上。其他的应该都简单了。对于使用rpm包直接安装的,本章节就不阐述了,其实就下载了包后,直接安装即可(yum install rpm包路径)。好了,环境安装好后,下一章节开始介绍下Docker常用命令,敬请期待!

最后

若文中有错误或者遗漏之处,还望指出,共同进步!

参考资料

  1. https://docs.docker.com/install/linux/docker-ce/centos/
  2. RPM包下载的地址:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/

老生常谈

  • 个人QQ:499452441
  • 微信公众号:lqdevOps

个人博客:http://blog.lqdev.cn

原文地址:http://blog.lqdev.cn/2018/07/31/docker/docker-two/

Docker | 第二章:第一个Docker应用的更多相关文章

  1. Docker第二章:docker基础1--镜像,容器&仓库

    镜像介绍及操作:http://www.haveneed.cn/article-detials/115 容器介绍及操作:http://www.haveneed.cn/article-detials/11 ...

  2. docker第二章--数据管理

  3. Pro ASP.NET MVC –第二章 第一个MVC程序

    学习一个软件开发框架的最有效的方式就是了解并使用它.在本章,你将会创建一个简单基于ASP.NET MVC Framework的数据-实体应用程序.我们会该程序划分成若干小块,每次介绍一个部分,以便你能 ...

  4. docker学习-运行第一个docker镜像hello world

    docker pull  [OPTIONS] NAME[:TAG]:从远程仓库拉取一个镜像到本地,NAME是要拉取的镜像的名称,TAG是docker镜像的版本,不指定的话默认是最新版本 docker ...

  5. Java面向对象编程 第二章 第一个Java应用

    2.1创建Java源文件 Java应用由一个或多个扩展名为".java"的文件构成,这些文件被称为Java源文件,从编译的角度,则被称为编译单元. 本章包含两个Java源文件:Do ...

  6. Google C++测试框架系列入门篇:第二章 开始一个新项目

    上一篇:Google C++测试框架系列入门篇:第一章 介绍:为什么使用GTest? 原始链接:Setting up a New Test Project 词汇表 版本号:v_0.1 开始一个新项目 ...

  7. 第二章——建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别-----答题者:徐潇瑞

    1.首先下载安装git,很简单所以就不详细说了,当弹出一个类似的命令窗口的东西,就说明Git安装成功 2.因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识 3.接着,注册githu ...

  8. 年轻人的第一个 Docker 应用,大大提高生产力!

    上一篇:年轻人的第一个 Spring Boot 应用! 哈哈,标题我抄了雷总的,不重要哦,重要的是 Docker 真的很年轻,虽然现在才不到 8 岁,但却是个冉冉升起的巨星,火得一塌糊涂. 这几年 D ...

  9. docker 部署Spring Boot:Docker化Spring Boot应用程序

    第一章 1.创建项目存放目录 mkdir /root/sproot -p 2.准备好Spring Boot应用程序 jar 包 testrest.jar 第二章 1. 安装docker 在所有节点执行 ...

随机推荐

  1. 网站跳转到Apache 2 Test Page powered by CentOS

    原来是80端口被占用的问题 解决80端口占用问题 sudo fuser -n tcp -k 覆盖原来的httpd cp /usr/local/apache2/bin/apachectl /etc/in ...

  2. mysql四个默认数据库

    1.Master数据库  Master数据库记录了Sqlserver所有的服务器级系统信息,所有的注册帐户和密码,以及所有的系统设置信息,还记录了所有用户定义数据库的存储位置和初始化信息. 2.Tem ...

  3. mongodb的备份还原

    一:备份数据库 G:\Program Files\MongoDB\Server\3.0\bin>mongodump -d mydb -o g:/data/back mongodump -h IP ...

  4. 21 、GPD-PSL-VCF

    https://genome.ucsc.edu/FAQ/FAQformat.html#format9 1.Variant Call Format(VCF) Example ##fileformat=V ...

  5. qboimathtest1 t2 配对

    题目 有1~n一共n个数,n为偶数.小Q要把这n个数随机地两两配对.令每一对的权值为它们两个数的和.小Q想要知道这n/2对里最大的权值的期望是多少.请输出答案对10^9+7取模的值. [输入] 一行一 ...

  6. Umbraco Examine Search (Lucene.net) french accent

    在项目中使用Umbraco examine search 来search 法语网站时,客户有一个需求,就是 当search  expérience 和 experience 时,需要返回一样的结果. ...

  7. 16.CTF综合靶机渗透(九)

    Boot2root challenges aim to create a safe environment where you can perform real-world penetration t ...

  8. DataSet,DataTable,DataColumn,DataRow的常用操作

    DataSet 这个玩意没什么好讲的,当ado.net查询出有多张表集合的数据返回时,这个时候就会使用到DataSet. DataTable //表之间直接赋值 dt2=dt1; 两者指向同一内存空间 ...

  9. zoj3195(lca / RMQ在线)

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3195 题意: 给出一棵 n 个节点的带边权的树, 有 q 组形 ...

  10. 洛谷P1034 矩形覆盖

    P1034 矩形覆盖 题目描述 在平面上有 n 个点(n <= 50),每个点用一对整数坐标表示.例如:当 n=4 时,4个点的坐标分另为:p1(1,1),p2(2,2),p3(3,6),P4( ...