前言

上一章节,已经简单讲解了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)的同学,可以利用以下命令进行卸载。

  1. $ sudo yum remove docker \
  2. docker-client \
  3. docker-client-latest \
  4. docker-common \
  5. docker-latest \
  6. docker-latest-logrotate \
  7. docker-logrotate \
  8. docker-selinux \
  9. docker-engine-selinux \
  10. docker-engine

安装命令

  1. sudo yum install docker-ce

**或者 **

  1. sudo yum -y install docker-ce

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

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

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

控制台输出:

  1. #前面大段忽略...
  2. Dependency Updated:
  3. 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
  4. 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
  5. 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
  6. selinux-policy-targeted.noarch 0:3.13.1-192.el7_5.4
  7. Complete!

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

1.安装基础包

  1. sudo yum install -y yum-utils \
  2. device-mapper-persistent-data \
  3. lvm2

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

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

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

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

  1. 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(未替换阿里云镜像加了官网的源地址是出现)文件的,删除此文件即可。

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

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

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

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

启动docker

  1. sudo systemctl start docker

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

  1. sudo docker info

说明已经安装成功了。

安装阿里云加速器

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

查看目录:

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

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

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

第一个Docker应用

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

  1. sudo docker run hello-world

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

  1. Hello from Docker!
  2. 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. Windows部署jenkins服务器

    本次使用的操作系统: windows server 2012 r2vs版本: vs 2015jenkins: 2.19.4 一.下载jenkins http://mirror.xmission.com ...

  2. 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 = [{' ...

  3. 服务器修改密码cmd

    net user  账号  要修改的密码

  4. [51nod1270] 数组的最大代价(简单dp)

    解题关键:先由贪心的思想得出任何一个位置只能取1或者a[i],然后dp即可. #include<bits/stdc++.h> using namespace std; typedef lo ...

  5. tensorflow session会话控制

    import tensorflow as tf # create two matrixes matrix1 = tf.constant([[3,3]]) matrix2 = tf.constant([ ...

  6. Linux kernel分析前的准备

    分析工具 “欲善其事,先利其器”.Linux内核的代码量非常大,如果没有一个好的察看分析工具,那将是一件非常繁琐的事情. Vim+cscope cscope,如果你知道ctags,那么它是一个比cta ...

  7. Spring入门第二十三课

    我们看基于XML配置的方式配置AOP 看代码: package logan.study.aop.impl; public interface ArithmeticCalculator { int ad ...

  8. TCP三次握手四次挥手原理

    转自http://www.cnblogs.com/liuxiaoming/archive/2013/04/27/3047803.html TCP协议三次握手原理: 首先,给张图片,建立TCP三次握手的 ...

  9. JWT使用过程中遇到的问题

    1.创建token的盐设置过于简单,出现secret key byte array cannot be null or empty. 异常 解决方法:jwt:config:key:hwy ------ ...

  10. Ruby中如何识别13位的时间戳

    由于13位的时间戳在Ruby中是比较另类的,以为Ruby中默认的时间戳都是10位的.而Time和Date是Ruby中常用的处理时间的模块. 由于最初遇到问题的时候网上搜了好久都没找到合适的,因此就自己 ...