文章插图
对于初学者来说,刚刚接触Docker会有点迷,特别是镜像与容器 。其实我们可以理解镜像与容器为一对多的关系 。
下图错误的示范,为什么是错误的呢?因为可以通过一个镜像确实可以启动三个容器,但是这个三个容器的名字不能一样
文章插图
正确的示例(有人说这和上图有什么区别,上图中是不是名字一样了 容器=容器=容器,这里的名字是 容器a != 容器b != 容器c )
文章插图
所以我们能通过一个镜像,运行出三个容器,镜像是别人打包好在镜像仓库的,我们去下载就好了 。但是我们下载镜像的时候要带上版本号 。就像我们下载一个jdk,官网默认是最新版,如果我们要下载旧版,就要进到对应的版本里面 。
一个镜像怎么运行为容器呢?比如msql,我们下载一个MySQL镜像 。
docker pull mysql
运行镜像,生成mysql_zhangsan数据库(专门给张三用的数据库)[root@localhost ~]# docker run ‐p 3306:3306 ‐‐name mysql_zhangsan ‐e MYSQL_ROOT_PASSword=123456 ‐d mysql ad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434
-p 3306:3306 : 端口映射--name mysql_zhangsan : 给这个容器命名为mysql_zhangsan(这个名字是唯一的,不能重复)
-e MYSQL_ROOT_PASSWORD=123456 : 这个数据库登陆的账号为ROOT 密码为123456
-d 是基于我们刚刚拉下拉的镜像mysql进行创建的 。
运行镜像,生成mysql_lisi数据库(专门给李四用的数据库)
[root@localhost ~]# docker run ‐p 3307:3307 ‐‐name mysql_lisi ‐e MYSQL_ROOT_PASSWORD=123456 ‐dmysql ms10e4bcfdsf0f61cbad43898de71d366117d120dfs9db651844c0e73863b9968
-p 3307:3307 : 端口映射(不能用3306了,因为3306被张三的数据库占用了)--name mysql_lisi : 给这个容器命名为mysql_lisi(这个名字是唯一的,不能和上面的mysql_zhangsan重复)
-e MYSQL_ROOT_PASSWORD=123456 : 这个数据库登陆的账号也为ROOT 密码也为123456
-d 是基于我们刚刚拉下拉的镜像mysql进行创建的 。
到这里,我们成功通过一个镜像,创建了两个不同的容器 。这样,我们的电脑上就能运行两个mysql了 。如果我们要再开一个mysql容器,只要端口不同,名称不同,最后还是基于我们拉的mysql镜像就可以进行创建了 。
【抛开原理,今天我只讲Docker容器与镜像的区别】
推荐阅读
- 通过十个问题助你彻底理解linux epoll工作原理
- 明朝的四大才子都是谁,明朝三大才子与四大才子
- 一个故事讲完CPU的工作原理
- |铜元到底要不要清洗?
- 历史上的今天10月20日,历史上北宋的都城东京是今天的河南
- 傍轴相机的原理及优势分析
- 双反转相机原理及使用方法介绍
- 一篇文章带你搞懂Python中的类
- 洛阳|今天工作不努力,明天努力找工作!
- 你想10分钟吃透synchronized锁的各种用法和注意事项?今天它来了