Docker总结
Docker就是一个容器引擎,在之前的工作中我也用过,整体来说就是让配置整套环境更加方便,可以达到一键部署的效果。
说白了不用Docker我们也能搭建环境,部署项目,但是比较费劲,步骤比较繁琐,而且如果要把项目迁移到另外一台机器上,还将相关的软件重头到尾安装-遍,而且有时候机器的操作系统版本不一样,即便按照同样的配置步骤也有可能出现软件的不兼容,而且在改配置文件的时候可能会因为手误导致配置出错,多个逗号,少个分号啥的,这些都比较耗费时间,也降低了工作效率。
通过docker就可以解决刚刚说的这些个问题。[至少记忆到这个地方]
我觉的docker中最重要的就是镜像和容器这两个东西。镜像可以理解成以前的光盘,这个光盘上包含了我们所有需要的软件及其相关环境;通过docker run启动镜像后就有了容器。在执行docker run时候可以通过-d设置为以后台程序的方式运行,通过-p指定容器端口号到宿主主机端口号的映射,在最后跟上要启动的镜像的名字。
之后可以通过docker ps查看启动的容器对应的进程信息,通过docker stop容器id来停止容器,通过docker start容器id来启动已经停止的容器。
在项目中还可以通过docker-compose进行服务编排,说的简单点一个项目想要跑起来需要数据库,需要redis,需要nginx等等,我们可以通过这种服务编排将整个项目所需要的所有软件对应的镜像及其相关信息都写到一个YAML格式的文件中,这样在部署项目的时候直接通过docker-compose up启动服务,通过docker-compose ps查看启动的进程信息,通过docker-compose down来停止服务。就可以达到一键部署的效果。
Docker镜像相关的命令:
查看本机镜像:docker images
搜索镜像:docker search 镜像名
下载镜像:docker pull 镜像名
删除镜像:docker rmi 镜像id
Docker容器相关的命令:
查看容器:docker ps
创建并启动容器:docker run -it -d 镜像名 /bin/bash
启动容器: docker start 容器id或容器名
停止容器:docker stop 容器id或容器名
重启容器:docker restart 容器id或容器名
强制停止容器:docker kill 容器id或容器名
进入容器: docker exec -it 容器id或容器名 /bin/bash,打开一个新的终端
docker attach 容器id或容器名,不会打开新的终端
查看容器日志: docker logs -f -t 容器id或容器名
查看容器内部的进程:docker top 容器id或容器名