下面来继续讲讲Docker的一些个人见解,对于docker这个东西,在网上的说法很多,有人说是容器工具,也有人说是集装箱什么的,不同的人都有不同的看法,其实他们说得都对。在我个人认为的话,其实docker就跟虚拟机是类似的一个东西,我甚至怀疑它的前世就是虚拟机,也是一种虚拟化的东西,下面不再探讨其中的概念,这篇文章主要是介绍一些常用的命令操作等等吧:
首先,说一下我们开发者可以利用docker来做什么呢?我们可以用来部署,发布,交付一些项目或者其他的一些应用什么的。
接着,也顺便说一下它的一些优点吧:交付和部署快;高效虚拟化,各种平台拓展性高,管理方便简单,性能较好等等。
然后再介绍一些常用的命令:
docker images|grep XXX 查找某个XXX字符的镜像信息
docker images 列出所有的镜像信息
docker ps 列出容器信息
docker ps -a 列出已创建的容器信息
docker ps -s 列出已启动的镜像信息
docker start/stop/rm/rename + 容器名/容器ID 开启/停止/移除/重命名某个容器
docker rmi + 镜像 移除镜像
docker run -d(后台运行) -p(端口映射) -name(容器名) -e(环境变量) 运行一个容器
以mysql为例:
docker exec -it mysql bash 连接mysql
mysql -u root -p mysql登录
docker build -t xxxx:版本号 . (注意后面有个点号,要写,编译生成一个镜像)
docker-compose up (无参数默认启动docker-compose.yml文件) 启动compose
docker-compose ps 列出compose所有容器信息
docker-compose -f(指定yml文件) xxx.yml up -d(后台启动) 启动compose
最后,在这里再说一下docker、docker compose、dpckerFile、docker swarm之间的一些关系:
一个docker里面可以有多个镜像,然后一个镜像里可以有多个容器,dockerFile文件是指用来启动单个容器的多个命令的文件,不必每次都一个一个地来运行命令,dockerFile可以解决这个问题,然后针对于多个容器呢?那么docker compose就出现了,docker compose就是解决多个容器一起运行执行的问题,当然前面这三个东西都是针对于一个主机上的操作,要是想多个主机干涉操作呢?那么就用docker swarm吧,docker swarm可以解决多主机操作的问题,当然也是少不了Kubernetes的了,目前的推荐是使用Kubernetes,它与docker swarm是相同的功能,但是Kubernetes更佳,如果还没知道Kubernetes的话,建议可以自己去了解一下,这里就不深入讲解了,毕竟我也是刚刚开始接触,可能有些地方也讲错了,望体谅,望及时指正,谢谢!