Docker的简要概述及简单使用
本文章来自【知识林】
Docker的简要概述
在网上可以找到很多关于Docker的描述以及定义(当然还有使用方法),但基本都是千篇一律的,我在使用了一段时间后也对Docker有了一定的了解和认识,下面就以个人的理解对Docker也做一些描述。
希望不会太糟糕。
-
Docker是用来干什么的?
在平时的服务器管理中我们可能会遇到这几种情况:
- 每一次更换服务器或重装服务器后需要安装和配置的服务非常多而且很麻烦;
- 感觉安装这些服务都是比较重复的工作;
- 自己写了一个网站可能希望同时运行几个不同的版本,这时会非常头疼;
Docker就是为解决这些问题而产生的(当然远不止这些),它使重复的工作简单化。可以把Docker看成是运行在宿主机上的诸多虚拟机,但比虚拟机要轻量级得多。
-
初识Docker
我最开始接触Docker的时候非常迷茫,感觉这东西深不可测,一头雾水,后来经一朋友推荐看 《第一本Docker书》,看了之后才发现其实Docker并没有想象中的复杂,它仅只是一个容器工具,只要理解下面几个概念就清楚其工作原理了。
- 容器:Docker运行出来的每一个实例都是一个容器,一个容器可以理解成一个轻量级虚拟机,在这个容器里可以运行任何代码(不过建议一个容器只干一件事情),比如运行一个Mysql的数据库容器,或运行一个Tomcat的web容器。
- 镜像
Docker的简单使用
-
拉取一个镜像
使用命令docker pull
拉取一个镜像,如:
docker pull mysql:latest
解释:
docker pull mysql:lastest
表示拉取一个Mysql的镜像,:latest
是指要拉取的镜像的标签,一般指版本号,latest一般指最终版本,不过latest可以省略,即上述命令可修改为:docker pull mysql
,只有在需要指定具体标签时才会使用:标签号
。
-
启动一个容器
使用命令docker run
可以启动一个容器,如:
docker run -d -e MYSQL_ROOT_PASSWORD=123456 -p 3316:3306 --name=mysqldb mysql
解释:
-d
:表示后台运行
-e
:设置参数
-e MYSQL_ROOT_PASSWORD
: 表示设置Mysql数据库root用户的密码,这里初始的密码设置为123456
-p
: 指定端口号,这里将宿主机3316端口指向mysql容器的3306端口
--name
: 设置该容器的别名,这里设置为mysqldb
,这个名称可以供其他容器使用
mysql
: 具体的镜像,同理后面可以跟上相应的标签号,如:mysql:latest
执行
docker run
命令的运行流程是:
- 先在本地仓库中查找镜像,若找到则通过该镜像启动一个容器;
- 如果没有在本地仓库中找到镜像则去远程仓库中查找,默认的远程仓库是https://hub.docker.com。
-
查看容器
使用命令 docker ps
可以查看正在运行的容器,使用命令docker ps -a
查看所有容器(包括运行中的和已经停止的),更多参数可使用命令docker ps --help
查看。
[root@GZCLOUDLC6X-1041 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13e2dab0b3ae mysql "docker-entrypoint.s 13 minutes ago Up 13 minutes 0.0.0.0:3316->3306/tcp mysqldb
也可以通过docker ps
来查看容器的一些基本信息,如:容器Id、对应镜像、命令信息、创建日期、状态信息、端口映射、容器名称。
本文章来自【知识林】