1.docker简介

Docker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,更重要的是容器性能开销极低。Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版(CE)就可以了。

2.docker中的一些基本概念

Docker不是一个容器,而是一个管理容器的引擎工具,提供容器运行的环境和服务,并管理本地的镜像,运行的实例等,正如上图的docker图标一样,docker像一个大型油轮,承载着一个个集装箱,每个集装箱我们可以理解为我们的容器,这个容器中的内容完全由组装人员自定义。

容器: 容器好比软件集装箱(容器可以理解为一个镜像的实例,一个镜像可以有多个实例),它内部可以安装任何软件和库文件,做任意的运行环境配置,它可以被启动、开始、停止、删除。每个容器都是 相互隔离的、保证安全性。

镜像:Docker运行容器前需要本地存在对应的镜像,一个镜像可以创建多个容器,例如一个tomcat镜像我们可以创建N个tomcat容器。镜像可以用来创建Docker容器的。

仓库:仓库是存放所有的镜像文件的场所。个人理解就如同maven的中央仓库,Docaker公司提供了官方仓库叫DockerHub,存放了数量庞大的镜像供用户下载,但是由于Docker官方网站是外国网站,拉取镜像的速度非常地慢甚至直接失败,往往我们需要配置一个镜像加速器,比如阿里云的镜像加速器,下文会提及。

3.docker的安装

在说明下面的安装过程中,我会提及一些我遇到的问题,也许你不会遇到,仅供参考,以下安装环境为CentOS7。

1)检查系统内核版本

通过以下命令检查linux系统的内核版本,docker要求操作系统必须是64位,且系统内核版本高于3.10

[root@localhost ~]# uname -r

我这里的系统和内核版本都是符合要求的。

2)确定当前用户是否拥有root权限

如果当前用户不具有root权限,需要在下面的命令前加上sudo,进行提权。

3)检查系统当中是否安装过docker或者系统是否自带docker

如果没有显示出任何结果说明,没有安装过docker

[root@localhost ~]# yum list installed | grep docker

如果安装过docker,那么运行下面的命令进行卸载

[root@localhost ~]# yum remove docker-common.x86_64

4)安装docker

①安装一些必要的系统工具

[root@localhost ~]# yum install -y yum-utils device-mapper-persisten

②添加软件源信息

[root@localhost ~]# sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

④更新 yum 缓存:

[root@localhost ~]# yum makecache fast

⑤使用yum命令安装docker ce,-y代表全自动,自动确定。

[root@localhost ~]# yum -y install docker-ce

安装完成

5)测试docker是否安装成功

[root@localhost ~]# docker version

可以显示出docker版本即为安装成功。

4.docker的使用

我们通过docker --help命令可以查看docker的所有命令:下面以创建一个mysql5.6的容器来演示docker的基本使用方法。

1)启动docker后台服务

[root@localhost ~]# systemctl start docker

2)拉取镜像(Image)

[root@localhost ~]# docker pull mysql:5.6

我们输入上面的命令去拉取mysql5.6的镜像,却并没有拉取成功。

失败的原因就是我们拉取的仓库在国外的服务器上,在国内拉取镜像速度会非常慢甚至直接失败,所以我们需要配置一个镜像加速器,下面我就以阿里云的镜像加速器为例来进行配置,

首先进入etc/docker目录,并查看文件夹下的文件,如果找不到daemon.json文件就直接创建一个。

[root@localhost ~]# cd /etc/docker

创建daemon.json文件

[root@localhost docker]# touch daemon.json

将下面这段json字符串插入到daemon.json文件中。

{
"registry-mirrors": ["https://zc517qo8.mirror.aliyuncs.com"]
}

重新加载配置文件,重启docker

[root@localhost docker]# systemctl daemon-reload
[root@localhost docker]# systemctl restart docker

我们再次拉取mysql5.6镜像就可以拉取成功,并且下载速度也是棒棒的。

列出所有的镜像:

[root@localhost docker]# docker images

可以看到我们刚刚拉取得mysql5.6的镜像。

3)启动并创建一个mysql容器

[root@localhost docker]# sudo docker run --name wzy-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.6
  • –name:给新创建的容器命名,此处命名为wzy-mysql
  • -e:配置信息,此处配置mysqlroot用户的登录密码
  • -p:端口映射,此处映射主机3306端口容器wzy-mysql的3306端口
  • -d:成功启动容器后输出容器的完整ID,例如下图 c8226e9c9272
  • 最后一个mysql指的是mysql镜像名字(如需指定版本要加上:和版本号)

查看docker中的容器信息:

[root@localhost docker]# docker ps

可以看到容器已经被创建并启动。

4)测试mysql连接

使用navicat对mysql进行连接

连接成功!

在这里如果无法连接可以关闭linux的防火墙

[root@localhost docker]# systemctl stop firewalld

并且在iptables里开放3306端口,完结撒花~~~~~~~~~~~~~~~~~~~~~~~~~~

docker快速入门01——docker安装与简单应用的更多相关文章

  1. Docker 快速入门(一)- 情况介绍和安装

    欢迎您! 很高兴您想学习 Docker . 这个页面包含了如何开始使用 Docker 的循序渐进的说明. Docker 快速入门培训模块教你如何: 设置 Docker 环境(在本页) 构建并运行您的镜 ...

  2. Docker快速入门(二)

    上篇文章<Docker快速入门(一)>介绍了docker的基本概念和image的相关操作,本篇将进一步介绍image,容器和Dockerfile. 1 image文件 (1)Docker ...

  3. 【干货合集】Docker快速入门与进阶

    收录待用,修改转载已取得腾讯云授权 Docker 在众多技术中,绝对是当红炸子鸡.这年头,如果你不懂一点容器,不学一些Docker,还怎么出去跟人炫耀技术? Docker 也是云计算技术中较为热门的一 ...

  4. [转] Spark快速入门指南 – Spark安装与基础使用

    [From] https://blog.csdn.net/w405722907/article/details/77943331 Spark快速入门指南 – Spark安装与基础使用 2017年09月 ...

  5. 『NiFi 学习之路』入门 —— 下载、安装与简单使用

    一.概述 "光说不练假把式." 官网上的介绍多少让人迷迷糊糊的,各种高大上的词语仿佛让 NiFi 离我们越来越远. 实践是最好的老师.那就让我们试用一下 NiFi 吧! 二.安装 ...

  6. Docker快速入门

    Docker已经火了很长一段时间,最近打算在阿里云上好好熟悉一下Docker的相关应用,为今后的工作做准备. 基本概念 Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是do ...

  7. 进击的docker 二 : docker 快速入门

    1.安装docker 1.1.安装环境 [root@docker ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@docke ...

  8. Docker 快速入门教程

    本文目的是给几乎从未接触过docker,或者仅仅是听说或者通过新闻了解过Docker的同学 通过一个已有的Docker仓库构建和提交自己的Docker 镜像 这里会涉及到一些概念,但是不单独介绍 这里 ...

  9. Docker - 快速入门(一)

    概念 下面这三个概念一开始可能不好理解,等大家跟着博客把例子做完了,再回头来看应该就能理解了. docker image  # docker镜像 镜像就是一个只读的模板.镜像可以用来创建Docker容 ...

随机推荐

  1. 191112Django项目常用配置

    创建项目 >django-admin startproject project01 创建应用 >python manage.py startapp app01 settings.py 配置 ...

  2. JS闭包的理解及常见应用场景

    JS闭包的理解及常见应用场景 一.总结 一句话总结: 闭包是指有权访问另一个函数作用域中的变量的函数 1.如何从外部读取函数内部的变量,为什么? 闭包:f2可以读取f1中的变量,只要把f2作为返回值, ...

  3. 使用stringstream代替sprintf和sscanf

    C++里面的字符串格式话 之前一直是用的sprintf和sscanf 比较麻烦的是要申请一个字符数组然后在调用 用stringstream就比较完美 int main(int narg,char** ...

  4. CRC32算法C#中的实现

    代码如下: using System; using System.Collections.Generic; using System.Text; using System.IO; namespace ...

  5. UVA 122 -- Trees on the level (二叉树 BFS)

     Trees on the level UVA - 122  解题思路: 首先要解决读数据问题,根据题意,当输入为“()”时,结束该组数据读入,当没有字符串时,整个输入结束.因此可以专门编写一个rea ...

  6. linux挂载问题

    说明 Linux系统在使用光盘.软盘或U盘时,必须先执行挂载(mount)命令. 挂载命令会将这些存储介质指定成系统中的某个目录,以后直接访问相应目录即可读写存储介质上的数据. 挂载光盘 mount ...

  7. WPF 使用Task代替ThreadPool和Thread

    一:Task的优势 ThreadPool相比Thread来说具备了很多优势,但是ThreadPool却又存在一些使用上的不方便.比如: 1: ThreadPool不支持线程的取消.完成.失败通知等交互 ...

  8. 因修改/etc/ssh权限导致的ssh不能连接异常解决方法

    因修改/etc/ssh权限导致的ssh不能连接异常解决方法 现象: $ssh XXX@192.168.5.21 出现以下问题 Read from socket failed: Connection r ...

  9. C++统计程序运行时间代码片段

    因为经常需要统计代码的运行时间,所以计时功能就显得很重要, 记录一下现在喜欢用的计时方式,供日后查阅. 1.下面是计时主函数, bool TimeStaticMine(int id,const cha ...

  10. java:IO流(File,字节流/输入输出流(InputStream(FileInputStream),OutputStream(FileOutStream)),字符流(Reader,Writer))

    File: * java.io.File类:代表一个文件或目录. * 常用的构造方法: * File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例 ...