一、系统环境规划

服务器名

项目名称

docker

操作系统

CentOS Linux release 7.1.1503 (Core)

Docker 版本

17.03.2-ce

 

二、Docker 简介

Docker 容器可以简单的理解为是一个轻量级的虚拟机,容器和容器之间是相互隔离的。虚拟机和虚拟机之间是操作系统上的隔离,而容器和容器之间是进程上的隔离。

使用Docker 可以给我们带来很大的方便,比如:可以在一台主机上创建多个容器,当做多个节点来使用;在一台机器上安装多个MySQL 实例,它们的端口都是3306;可以把我们的应用程序进行打包等等。

Docker 官方主页: https://www.docker.com

Docker 官方文档: https://docs.docker.com/

Docker Hub: https://hub.docker.com

 

三、Docker 的安装

Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本CentOS 7 的内核一般都是3.10的,而CentOS 6.X 的内核一般都是2.6,在2.6的内核下,Docker运行会比较卡,所以一般会选择升级到3.10版本。

 

3.1、卸载掉系统自带的老版本docker

yum remove -y docker docker-client docker-client-latest docker-common \

docker-latest docker-latest-logrotate docker-logrotate \

docker-selinux docker-engine-selinux docker-engine

3.2、安装相关的依赖包:

安装docker的时候可能会报错缺包或者依赖包版本过低等问题,可视具体情况安装或升级相关依赖包。

yum install -y yum-utils device-mapper-persistent-data lvm2

3.3、配置docker 源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3.4、安装docker

安装之前我们可以先查看下有哪些docker 版本

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

安装docker:这里我们安装的是 17.03.2 版本。

yum install -y --setopt=obsoletes=0 docker-ce-17.03.2.ce-1.el7.centos.x86_64 \

docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch

3.5、我们也可以使用官方提供的脚本来安装docker

curl -fsSL get.docker.com -o get-docker.sh

sh get-docker.sh

四、查看Docker 版本和相关信息

4.1、安装完成,查看docker 版本信息

4.2、启动docker

安装完docker 服务是没有启动的,需要启动服务。

  systemctl enable docker

  systemctl start docker

启动完毕,查看docker 服务状态:

4.3、docker info 查看docker 相关信息

五、拉取镜像创建容器

Image(镜像) 和 Container(容器) 是Docker 中最基本的两个概念。

此处的 Image 可以理解为创建虚拟机的时候需要的操作系统镜像,也就是说Image 是创建容器的时候需要的镜像。

我们需要从网络上来拉取镜像:这是一个centos 7.6的镜像

docker pull centos:7.6.1810

拉取完毕,查看已下载的镜像:

有了镜像我们就可以使用镜像来创建容器了。

当然其他各个版本的镜像也都是可以下载的

下载 7.8 镜像

[root@docker ~]# docker pull centos:7.8.2003

7.8.2003: Pulling from library/centos

9b4ebb48de8d: Pull complete

Digest: sha256:8540a199ad51c6b7b51492fa9fee27549fd11b3bb913e888ab2ccf77cbb72cc1

Status: Downloaded newer image for centos:7.8.2003

六、创建容器

6.1、我们使用docker ps 或者 docker ps -a 命令来查看所有的容器信息,如下,当前没有任何容器,我们来创建一个。

docker run -d --name centos7_6_01 -h container_01 \

-p 220:22 \

--privileged=true \

centos:7.6.1810 /usr/sbin/init

参数解释:

--name centos7_6_01  为容器名字:centos7_6_01

-h container_01 为容器hostname:container_01

-p 220:22   为将22端口映射到220,也就是可以使用220端口直接连接到此容器

centos:7.6.1810 选择使用哪个镜像来创建容器

创建完毕,docker ps 查看下当前的容器:

这里我们看到有一个 NAMES 为 centos7_6_01 的容器了。

进入某个容器有两种方式,如下:

docker exec -it  <NAMES>  bash

docker exec -it  <CONTAINER ID>  bash

也就是可以直接使用容器名字或者容器ID来进入

docker exec -it centos7_6_01 bash

docker exec -it ed20ee9b8226 bash

6.2、每个容器都是有独立的IP的,IP可以在创建的时候指定,也可以自动生成。

6.3、修改容器时间:

容器创建完成会后,内部时间跟宿主机操作系统不一致,需要修改。

宿主机操作系统上执行:

docker cp /usr/share/zoneinfo/Asia/Shanghai centos7_6_01:/etc/localtime

修改完成再次进入容器查看:

七、将某个容器提交为一个镜像模板

Docker 中可以把某个容器提交为一个 image,也就是说我们可以以某个容器为模板来创建容器或者说是复制容器,这可以为我们提供极大的方便,节约更多的时间。

比如:我们在centos7_6_01 容器中安装完了MySQL 数据库以及相关的一些配置,我们此时还需要创建一个相同环境相同配置的容器centos7_6_02,那我们是先创建一个空的容器,然后去安装MySQL数据库以及配置其他的信息,还是直接把centos7_6_01 作为一个模板直接复制一个容器出来呢?当然是直接复制一个要更快捷更高效。

查看当前容器和镜像信息如下,我们把name 为 centos7_6_01 的容器提交为一个模板来供我们后续使用,也可以说是把 centos7_6_01 进行复制来实现一个自动化部署的功能。

我们把容器 centos7_6_01 提交为 centos7_6 版本为2.0 的一个镜像:

docker commit centos7_6_01 centos7_6:2.0

我们再以这个新创建的镜像来创建一个容器:创建一个名为 mysql_01,主机名为 mysql_01,端口为 221 的容器:

docker run -d --name mysql_01 -h mysql_01 \

-p 221:22  \

--privileged=true \

centos7_6:2.0 /usr/sbin/init

此时我们创建出来的 mysql_01 容器就跟 centos7_6_01 容器是一摸一样的了。

容器mysql_01 拥有独立的ip地址。

DOCKER 安装步骤-最靠谱的笔记的更多相关文章

  1. Docker应用部署实录(包含完善Docker安装步骤)

    Docker应用部署实录(包含完善Docker安装步骤) 前言 首先说一下这篇文章的来源.我之前接手的一个IOT项目,需要安装多个中控服务器.中控服务器需要安装RabbitMQ,Mysql,多个服务, ...

  2. ubuntu环境下docker安装步骤

    本文是根据docker官方文档翻译,原文:https://docs.docker.com/engine/installation/linux/ubuntulinux/ Docker 支持以下 Ubun ...

  3. Docker安装步骤

    在学习springcloud的消息总线时,需要安装rabbitmq,因为rabbitmq是用erlang开发的,所以安装rabbitmq又需要先安装erlang,总之安装过程中遇到各种坑,然而最终还是 ...

  4. windows docker 安装cloudera/quickstart

    最近需要写一个大数据的项目,但是公司没有测试环境,真是cao蛋,没办法,只能自己搭建一个测试环境,所以就在本地电脑装一个cloudera/quickstart,这个是一个单节点的大数据平台, 是clo ...

  5. Docker安装之路

    从3月初到现在,一直在安装docker 的路上越走越远,大概就在1个小时前,我终于成功了,那一刻,我觉得我拥有了整个世界,于是乎,拥有了整个世界的我决定草率的并粗略的记录一下安装过程中遇到的我能记住的 ...

  6. Docker:docker安装部署jenkins

    Docker安装步骤请转到:https://www.cnblogs.com/nhdlb/p/11262527.html 查看docker的jenkins镜像版本 #查看jenkins版本命令 dock ...

  7. 【Linux】【自学笔记】Linux下面docker安装mysql

    写在前面: 捣腾继续,之前把一个SpringBoot的程序安装在docker上面,参考链接:https://www.cnblogs.com/aki-stones/p/2019-11-01-note.h ...

  8. mac系统下docker安装配置mysql详细步骤

    上文介绍了MacOS安装Docker傻瓜式教程,安装好后第一件事就决定把本地数据库迁移过来,那么首先就得安装mysql,下面就开始我们的安装之旅吧. 一.docker配置镜像加速器 我们使用docke ...

  9. docker安装mysql、es、jenkins等一些步骤以及如何设置docker国内镜像

    CentOS7安装Docker步骤: (0)删除旧的可能安装过的包 yum remove docker \                   docker-client \              ...

随机推荐

  1. 网络 IO 模型简单介绍

    一.同步阻塞 IO(BIO) 当用户线程调用了 read 系统调用,内核(kernel)就开始了 IO 的第一个阶段:准备数据.很多时候,数据在一开始还没有到达(比如,还没有收到一个完整的Socket ...

  2. 重写Laravel异常处理类

    现在开发前后端分离变得越来越流行了,后端只提供接口返回json格式的数据,即使是错误信息也要以json格式来返回,然而目前无论是Laravel框架还是ThinkPHP框架,都只提供了返回json数据的 ...

  3. ES6新增数据类型Symbol

    Symbol的含义? ES6(2015) 引入了第七种原始数据类型Symbol,Symbol英文文意思为 符号.象征.标记.记号,在 js 中更确切的翻译应该为独一无二的 Symbol的使用? Sym ...

  4. Flink开发中的问题

    1. 流与批处理的区别 流处理系统 流处理系统,其节点间数据传输的标准模型是:当一条数据被处理完成后,序列化到缓存中,然后立刻通过网络传输到下一个节点,由下一个节点继续处理. 批处理系统 批处理系统, ...

  5. 面试官问我:Object o = new Object() 占用了多少个字节?

    小小面试一下 前言蜜语 最近马师傅火的不要不要的,虽然没有抢到耗子尾汁的商标注册权,但是必须得蹭一波马师傅的热度,下面就是闪电五连鞭的教学环节,你准备好了吗! 在正式内容开始前先甩两篇关于类加载机制和 ...

  6. netsniff恶意流量识别和匹配解读

    代码整体框架 流量扫描函数调用 加载配置文件的代码调用 获取扫描的条数 重点匹配函数 流量eg:'\x00\x04\x00\x01\x00\x06\x00\x16>\x10\x1d>SW\ ...

  7. 如何用Python判断一个文件是否被占用?

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 今天有同学问,用os模块的access()能否判断一个文件是否被占用?直觉上,这是行不通的,因为ac ...

  8. iOS 集成友盟分享图片链接为http时无法加载问题解决

    一.问题描述 UMShareWebpageObject *obj = [UMShareWebpageObject shareObjectWithTitle:title descr:shareText ...

  9. Autofac官方文档翻译--一、注册组件--3属性和方法注入

    官方文档:http://docs.autofac.org/en/latest/register/prop-method-injection.html Autofac 属性和方法注入 虽然构造函数参数注 ...

  10. 微软自带打包工具 InstallShield 的使用

    1.下载并安装  InstallShield InstallShield Limited Edition for Visual Studio 2013 图文教程(教你如何打包.NET程序)   Ins ...