Docker 简单入门(一)

Docker 简介

Docker是一个开源的容器引擎,它有助于更快地交付应。Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序-样进行管理。使用Docker,可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。

Docker的官方网站: https://www.docker.com/
Docker的GitHub: https://github.com/docker/docker/

Docker 架构

Docker 架构图如下:


图中包含的组件:
  • Docker daemon ( Docker守护进程)
    Docker daemon是一个运行在宿主机( DOCKER HOST )的后台进程。可通过Docker客户端与之通信。

  • Client ( Docker 客户端)
    DoCker 客户端是 DOCke :的用户界面,它可以接受用户命令和配置标识,并与 DOCker daemon 通信。图中, docke : build 等都是 Docke :的相关命令。

  • Images ( Docker 镜像)
    DOCker 镜像是一个只读模板,它包含创建 DoCker 容器的说明。它和系统安装光盘有点像 ― 使用系统安装光盘可以安装系统,同理,使用 D 。 cke :镜像可以运行 Docker 镜像中的程序。

  • Container (容器)
    容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。可通过 Docker API 或者 Cll 命令来启停、移动、删除容器。

  • Registry
    Docker Registry 是一个集中存储与分发镜像的服务。构建完 Docker 镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,就需要手动复制。此时可借助 Docker Registry 来避免镜像的手动复制。一个 Docker Registry 可包含多个 Doclcer 仓库,每个仓库可包含多个镜像标签,每个标签对应一个 Docker 镜像。这跟 Maven 的仓库有点类似,如果把 Docker Registry 比作 Maven 仓库的话,那么 Docker 仓库就可理解为某 jar 包的路径,而镜像标签则可理解为 jar 包的版本号。

    Docker Registry 可分为公有 Docker Registry 和私有 Docker Registry 。最常用的 Docker Registry 莫过于官方的 Docker Hub ,这也是默认的 Doclcer Registry 。 Doclcer 枷 b 上存放着大量优秀的镜像,可使用 DoCker 命令下载并使用。

Docker 安装

DoCker 官方建议将 Docker 运行在 Linux 操作系统上。当然Docke也可运行在其他的平台,例如windows、MacOS 等。
本次将演示如何在 CentOS 上安装 Docker ,其他操作系统上的安装可参考官方文档: https://docs.docker.com/engine/installation/。

Docker 系统要求

Docker 运行在 CentOS 7 . X 之上。
Docke :需要安装在 64 位平台.

卸载旧版Docker

sudo yum -y remove docker-ce 执行该命令只会移除旧版本的 docker-ce , /var/lib/docker 目录中的内容不会被删除,因此,旧版本 Docker-ce所创建的镜像、容器、卷等都会保留下来。

设置 Yum 源

Docker 有很多中安装方式:例如Yum安装、RPM安装、Shell安装。本次以Yum安装为例。

  1. 安装 yum-utils,这样就能使用 yum-config-manager 工具设置 Yum 源。
    sudo yum install -y yum-utils
  2. 执行以下命令,添加 Docker 的 Yum 源。
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. [可选]启用测试仓库
    测试仓库包含在 docker.repo 文件中,但默认情况下是禁用的。如需启用测试仓库,可使用以下命令:
    sudo yum-conflg-manager -enable docker-testing

    想要禁用测-试仓库,可执行以下命令:

    sudo yum-config-manager -disable docker-testing

安装 Docker

  1. 更新 Yum 包的索引。
    sudo yum makecache fast <!-- 不可用 -- >sudo yum makecache
  2. 安装最新版本的 Docker。
    sudo yum -y install docker-ce

    这样,经过-段时间的等待后, Docker 就安装完成了。

  3. 在生产系统中,可能需要安装指定版本的 Docker ,而并不总是安装最新版本。执行以下命令,即可列出可用的 Docker 版本。
    yum list docker-ce.x86_64_showduplicates |sort -r

    其中, sort -r 命令表示对结果由高到低排序。列出 Docker 版本,可使用以下命令安装指定版本的 Docker。

    sudo yum - y install docker-ce-<VERSION_STRIN6>
  4. 设置开机启动
sudo systemctl enable docker
  1. 启动 DokCero

    sudo systemctl start docker
  2. 执行以下命令,验证安装是否正确。

    sudo docker run hell0-World

    如看到类似于如下的结果,则说明安装正确。
    Unable to find image 'hello-world:latest' locally
    ...
    Hello from docker!
    This message shows that your installation appears to be working correctly.
    ...

  3. 查看 Docker 版本。
    docker version 可看到类似于如下的结果:

卸载 Docker

  1. 卸载 Doclcer 软件包。
    sudo yum -y remove docker-ce
  2. 如需删除镜像、容器、卷以及自定义的配置文件,可执行以下命令:
    sudo rm -rf /var/docker

配置阿里镜像加速器

国内访问 Docker Hub 的速度很不稳定,有时甚至出现连接不上的情况。本节来为 Docker 配置镜像加速器,从而解决这个问题。目前国内很多云服务商都提供了镜像加速的服务。常用的镜像加速器有:阿里云加速器、 DaoCloud 加速器等。各厂商镜像加速器的使用方式大致类似,本节以阿里云加速器为例进行讲解。

  1. 打开阿里云控制台-容器镜像服务-镜像中心-镜像加速器
  2. 修改配置文件
    vi /etc/docker/daemon.json

    添加加速地址

  3. 重启docker
systemctl daemon-reload
systemctl restart docker

学习于:《Spring Cloud与Docker 微服务架构实战》 — 周立

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273647.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PDF解决方案(2)--文件转PDF

相关专题链接&#xff1a; PDF解决方案&#xff08;1&#xff09;--文件上传 PDF解决方案&#xff08;2&#xff09;--文件转PDF PDF解决方案&#xff08;3&#xff09;--PDF转SWF PDF解决方案&#xff08;4&#xff09;--在线浏览 前言&#xff1a;上一篇中讲到的文件上传&…

Docker 常用命令(二)

Docker 镜像常用命令 搜索镜像 可使用 docker search 命令搜索存放在 Docker Hub 中的镜像。例如&#xff1a; docker search java 执行该命令后&#xff0c; Docker 就会在 Docker Hub 中搜索含有 java 这个关键词的镜像仓库。执行该命令后&#xff0c;可看到类似于如下的表格…

Docker 使用Dockerfile构建Docker(三)

Dockerfile 简单使用 先来编写一个最简单的 Dockerfile。 例如&#xff1a; FROM nginx RUN echo <h1>使用Dockerfile构建镜像</h1> > /usr/share/nginx/html/index.html 该 Dockerfile 非常简单&#xff0c;其中的 FORM 、 RUN 都是 Dockerfile 的指令。 FROM …

网络流之最大流问题

Reference&#xff1a; http://blog.csdn.net/rrerre/article/details/6751520 http://blog.csdn.net/y990041769/article/details/21026445 http://www.nocow.cn/index.php/Translate:USACO/NetworkFlow 最大流Edmonds_Karp算法模板&#xff1a; EK算法即增广路算法。 最大流最…

delphi读取excel

简单的例子 1 procedure TForm1.Button1Click(Sender: TObject);2 var3 ExcelApp,MyWorkBook: OLEVariant;4 begin5 opendialog1.Filter:Microsoft Excel Workbook (*.xls)|*.XLS|; 6 edit2.Text : sheet1;7 if opendialog1.Execute then8 begin9 edit1.Text:o…

Docker-compose 常用命令及网络设置(五)

Docker Compose 常用命令 build 构建或重新构建服务。服务被构建后将会以 project_service的形式标记,例如:comoretest db。help 査看指定命令的帮助文档,该命令非常实用。 docker-compose所有命令的帮助文档都可通过该命令查看。 docker-compose he lp COMMAND 示例 docker-co…

浅谈 trie树 及其实现

定义&#xff1a;又称字典树&#xff0c;单词查找树或者前缀树&#xff0c;是一种用于快速检索的多叉树结构&#xff0c; 如英文字母的字典树是一个26叉树&#xff0c;数字的字典树是一个10叉树。 核心思想&#xff1a;是空间换时间.利用字符串的公共前缀来降低查询时间的开销以…

Docker-compose 安装与基本使用(四)

安装 Docker-Compose Compose有多种安装方式,例如通过 shell, pip以及将 Compose作为容器安装等。本次安装以Shell 为主。 通过以下命令自动下载并安装适应系统版本的 Compose: curl -L "https://github.com/docker/compose/releases/download/1.10.0/docker-compose-$(un…

如何开始DDD(完)

连续写了两篇文章&#xff0c;这一篇我想是序的完结篇了。结合用户注册的例子再将他简单丰富一下。在这里只添加一个简单需求&#xff0c;就是用户注册成功后给用户发一封邮件。补充一下之前的代码 public class DomainService {public void Register(User user){if (_userRepo…

git pull 报错:Untracked Fles Preventing Merge

场景 使用 git pull 命令更新报错解决 找到对应的文件删除后重新打开项目。

关于string,我今天科普的

今天下午朋友讨论组上讨论一个关于string的问题&#xff0c;问题是这样的&#xff0c;string a"aaa";string ba;a"bbb",为什么测试b的值不改变&#xff1f;之前我看过一个文章&#xff0c;知道肯定不相等&#xff0c;因为引用地址的一系列问题&#xff0c;…

git pull 报错:The following untracked working tree files would be overwritten by merge

场景 使用 git pull 命令更新报错 Updating d652d1c..fa05549 error: The following untracked working tree files would be overwritten by merge:.idea/encodings.xmlPlease move or remove them before you can merge. Aborting 解决 使用 git clean -d -fx 命令即可。

SpringBoot 配置多数据源

项目Git地址&#xff1a;SpringBoot 配置多数据源&#xff1a;Jacob-multi-data-source 准备工作 准备两个数据库(此模块中两个数据库一个为本地 一个为远程&#xff0c;本地为主&#xff0c;远程为从)。然后建表。 #本地库 CREATE TABLE username (id bigint(11) NOT NULL AUT…

HDU 2912

直线关于球的多次反射&#xff0c;求最后一次反射点 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath>using namespace std; const double inf1e10; const double eps1e-8; struct point {doub…

EMVTag系列3《持卡人基本信息数据》

9F61 持卡人证件号 L&#xff1a;2–26 R&#xff08;需求&#xff09;&#xff1a;数据应存在&#xff0c;在读应用数据过程中&#xff0c;终端不检查&#xff1b; (PBOC2.0第五部分中规定)芯片中持卡人姓名 5F20与持卡人姓名扩展9F0B只能使用一个&#xff0c;另一个必须不…

BindingException: Parameter 'XXX' not found. Available parameters are [collection, list]

应业务需求&#xff0c;需要使用到MQ进行数据上传和下发。传递格式为JSON,服务那边下发JSON数组&#xff0c;接收端将JSON数组转换成List集合&#xff0c;调用Mybatis-plus批量添加saveBatch()。提示字段未找到... org.apache.ibatis.exceptions.PersistenceException: ### Er…

JDK 8 新特性 之 default关键字

前言 Jdk1.8之前的接口中只声明方法&#xff0c;方法具体实现应在子类中进行。Jdk1.8打破了这样的用法&#xff1a;接口中可以实现具体的方法体&#xff0c;只需要加上关键字static或者default修饰即可。 default关键字 public interface UserService {//自定义方法void getUse…

headroom.js插件使用方法

1.什么是headroom.js&#xff1f; headroom是用纯Javascript写的插件&#xff0c;用来隐藏和展示页面元素&#xff0c;从而为页面留下更多空间。比如使用headroom能使导航栏当页面下滚时消失&#xff0c;当页面上滚时候又出现。&#xff08;查看效果&#xff09; 2.工作原理 通…

JDK 8 新特性 之 方法引用

概述 方法引用&#xff1a;当要传递给Lambda体的操作&#xff0c;已经有实现的方法了&#xff0c;就可以使用方法引用方法引用&#xff1a;在Lambda的基础上进一步的简化。换句话说&#xff0c;方法引用就是Lambda表达式&#xff0c;也就是函数式接口的一个实例&#xff0c;通过…

项目记录:springmvc forward redirect 问题

RequestMapping("/redirect")public String redirect(RedirectAttributes redirectAttributes){redirectAttributes.addFlashAttribute("test", "testdata"); //专供此种情况下使用。return "redirect:read";} 注意&#xff1a;此种情…