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 在所有节点执行 ...
随机推荐
- 网站跳转到Apache 2 Test Page powered by CentOS
原来是80端口被占用的问题 解决80端口占用问题 sudo fuser -n tcp -k 覆盖原来的httpd cp /usr/local/apache2/bin/apachectl /etc/in ...
- mysql四个默认数据库
1.Master数据库 Master数据库记录了Sqlserver所有的服务器级系统信息,所有的注册帐户和密码,以及所有的系统设置信息,还记录了所有用户定义数据库的存储位置和初始化信息. 2.Tem ...
- mongodb的备份还原
一:备份数据库 G:\Program Files\MongoDB\Server\3.0\bin>mongodump -d mydb -o g:/data/back mongodump -h IP ...
- 21 、GPD-PSL-VCF
https://genome.ucsc.edu/FAQ/FAQformat.html#format9 1.Variant Call Format(VCF) Example ##fileformat=V ...
- qboimathtest1 t2 配对
题目 有1~n一共n个数,n为偶数.小Q要把这n个数随机地两两配对.令每一对的权值为它们两个数的和.小Q想要知道这n/2对里最大的权值的期望是多少.请输出答案对10^9+7取模的值. [输入] 一行一 ...
- Umbraco Examine Search (Lucene.net) french accent
在项目中使用Umbraco examine search 来search 法语网站时,客户有一个需求,就是 当search expérience 和 experience 时,需要返回一样的结果. ...
- 16.CTF综合靶机渗透(九)
Boot2root challenges aim to create a safe environment where you can perform real-world penetration t ...
- DataSet,DataTable,DataColumn,DataRow的常用操作
DataSet 这个玩意没什么好讲的,当ado.net查询出有多张表集合的数据返回时,这个时候就会使用到DataSet. DataTable //表之间直接赋值 dt2=dt1; 两者指向同一内存空间 ...
- zoj3195(lca / RMQ在线)
题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3195 题意: 给出一棵 n 个节点的带边权的树, 有 q 组形 ...
- 洛谷P1034 矩形覆盖
P1034 矩形覆盖 题目描述 在平面上有 n 个点(n <= 50),每个点用一对整数坐标表示.例如:当 n=4 时,4个点的坐标分另为:p1(1,1),p2(2,2),p3(3,6),P4( ...