Docker | 第二章:第一个Docker应用
前言
上一章节,已经简单讲解了
Docker相关方面的知识,相信大家已经有个概念了。这章节开始,开始进行实践操作。和学习任何一门语言一样,我们今天也开始从Hello,World开始~
对Docker不了解的,可查看下第一章:Docker简介。
CentOS系统Docker安装
现在的
Docker已经能支持Windows、Mac及Linux的各大操作系统了。但在生产阶段,应该Linux才是主流。其他的平台还是主要以学习为主。但对于Linux平台而言,又有CentOS、Debian、Fedora、Ubuntu等等不同的发行版。不同的发行版安装过程是稍有不同的。本章节主要是以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命令进行安装。
题外话:对于已经安装了旧的版本(docker、docker-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常用命令,敬请期待!
最后
若文中有错误或者遗漏之处,还望指出,共同进步!
参考资料
- https://docs.docker.com/install/linux/docker-ce/centos/
- 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应用的更多相关文章
- Docker第二章:docker基础1--镜像,容器&仓库
镜像介绍及操作:http://www.haveneed.cn/article-detials/115 容器介绍及操作:http://www.haveneed.cn/article-detials/11 ...
- docker第二章--数据管理
- Pro ASP.NET MVC –第二章 第一个MVC程序
学习一个软件开发框架的最有效的方式就是了解并使用它.在本章,你将会创建一个简单基于ASP.NET MVC Framework的数据-实体应用程序.我们会该程序划分成若干小块,每次介绍一个部分,以便你能 ...
- docker学习-运行第一个docker镜像hello world
docker pull [OPTIONS] NAME[:TAG]:从远程仓库拉取一个镜像到本地,NAME是要拉取的镜像的名称,TAG是docker镜像的版本,不指定的话默认是最新版本 docker ...
- Java面向对象编程 第二章 第一个Java应用
2.1创建Java源文件 Java应用由一个或多个扩展名为".java"的文件构成,这些文件被称为Java源文件,从编译的角度,则被称为编译单元. 本章包含两个Java源文件:Do ...
- Google C++测试框架系列入门篇:第二章 开始一个新项目
上一篇:Google C++测试框架系列入门篇:第一章 介绍:为什么使用GTest? 原始链接:Setting up a New Test Project 词汇表 版本号:v_0.1 开始一个新项目 ...
- 第二章——建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别-----答题者:徐潇瑞
1.首先下载安装git,很简单所以就不详细说了,当弹出一个类似的命令窗口的东西,就说明Git安装成功 2.因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识 3.接着,注册githu ...
- 年轻人的第一个 Docker 应用,大大提高生产力!
上一篇:年轻人的第一个 Spring Boot 应用! 哈哈,标题我抄了雷总的,不重要哦,重要的是 Docker 真的很年轻,虽然现在才不到 8 岁,但却是个冉冉升起的巨星,火得一塌糊涂. 这几年 D ...
- docker 部署Spring Boot:Docker化Spring Boot应用程序
第一章 1.创建项目存放目录 mkdir /root/sproot -p 2.准备好Spring Boot应用程序 jar 包 testrest.jar 第二章 1. 安装docker 在所有节点执行 ...
随机推荐
- 配置IIS服务:无法找到该页 您正在搜索的页面可能已经删除、更名或暂时不可用。
1.配置IIS服务器时,在默认网站创建虚拟目录XXX.然后右击启动页面.aspx,“浏览” 2. 出现错误: 无法找到该页 您正在搜索的页面可能已经删除.更名或暂时不可用. ------------ ...
- stm32与三菱PLC通信
一.三菱PLC通讯概要 三菱PLC FX系列通信结构如下图所示: 三菱PLC FX系列的通信规格如下图所示: 三菱PLC FX系列一般有以下几种通信模块,以FX2N为例: FX2N-232-BD ...
- AngularJs(Part 7)--Build-in Directives
Directives In AngularJS, we can use a variety of naming conventions to reference directives . In the ...
- geneid/genesymbol/ensemblid等之间的转换
在基因注释时,难免碰到各种GENE在不同数据库之间的ID转换(例如,Ensembl ID 转Entrez ID,或者Entrez ID与GENE Symbol之间的转换).这里介绍一下常用的三个在线网 ...
- Http客户端再封装
Android系统上推荐的Http客户端从Apache变成[HttpURLConnection],主要理由包括 * 不过因为UrlConnection这组接口时间较早(Java 1.0), 接口的设计 ...
- 简单的html兼容(参考js和css的常规写法)
参考往常css/js的浏览器选择加载 <!--[if lte IE 8]> <link rel="stylesheet" href="IEBrower. ...
- 常见的web漏洞及其防范
原文地址:http://blog.csdn.net/u013777676/article/details/52124298 一.SQL注入漏洞 SQL注入攻击(SQL Injection),简称注入攻 ...
- gitlab私服搭建
1.什么是gitlab: gitlab 是一个用于仓库管理系统的开源项目,它以git为代码管理工具,因此代码可以管到它上边来.搭建私服gitlab可以方便我们有条不紊的管理我们的代码.闲话不说,上代码 ...
- .NET Core 3.0 可回收程序集加载上下文
一.前世今生 .NET诞生以来,程序集的动态加载和卸载都是一个Hack的技术,之前的NetFx都是使用AppDomain的方式去加载程序集,然而AppDomain并没有提供直接卸载一个程序集的API, ...
- iOS 面试全方位剖析 -- Block篇
1.Block的本意 block本质上也是一个OC对象,它内部也有个isa指针, block是封装了函数调用以及函数调用环境的OC对象, block是封装函数及其上下文的OC对象 2.block截获变 ...