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 在所有节点执行 ...
随机推荐
- Windows部署jenkins服务器
本次使用的操作系统: windows server 2012 r2vs版本: vs 2015jenkins: 2.19.4 一.下载jenkins http://mirror.xmission.com ...
- python 基础 字典生成式
dict1 = {1:2,3:4,6:7,9:10} print dict((v,k) for k,v in dict.items()) 结果 {2:1.4:3,10:9,7:6} res = [{' ...
- 服务器修改密码cmd
net user 账号 要修改的密码
- [51nod1270] 数组的最大代价(简单dp)
解题关键:先由贪心的思想得出任何一个位置只能取1或者a[i],然后dp即可. #include<bits/stdc++.h> using namespace std; typedef lo ...
- tensorflow session会话控制
import tensorflow as tf # create two matrixes matrix1 = tf.constant([[3,3]]) matrix2 = tf.constant([ ...
- Linux kernel分析前的准备
分析工具 “欲善其事,先利其器”.Linux内核的代码量非常大,如果没有一个好的察看分析工具,那将是一件非常繁琐的事情. Vim+cscope cscope,如果你知道ctags,那么它是一个比cta ...
- Spring入门第二十三课
我们看基于XML配置的方式配置AOP 看代码: package logan.study.aop.impl; public interface ArithmeticCalculator { int ad ...
- TCP三次握手四次挥手原理
转自http://www.cnblogs.com/liuxiaoming/archive/2013/04/27/3047803.html TCP协议三次握手原理: 首先,给张图片,建立TCP三次握手的 ...
- JWT使用过程中遇到的问题
1.创建token的盐设置过于简单,出现secret key byte array cannot be null or empty. 异常 解决方法:jwt:config:key:hwy ------ ...
- Ruby中如何识别13位的时间戳
由于13位的时间戳在Ruby中是比较另类的,以为Ruby中默认的时间戳都是10位的.而Time和Date是Ruby中常用的处理时间的模块. 由于最初遇到问题的时候网上搜了好久都没找到合适的,因此就自己 ...