docker部署微服务
Docker简介
Docker是一个开源的容器引擎,它有助于更好地交付应用。Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理,使用Docker可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。
docker优点:
1.简化程序:开发者可以打包他们的应用以及依赖包到可移植的容器中,然后发布到任何流行的Linux机器上,便可实现虚拟化。
2.避免选择恐惧症:docker镜像包含了运行环境和配置,简化了部署多个应用的实例工作。
3.节省开支:docker与云的结合,让云空间得到更充分的利用,不仅解决了硬件管理的问题,也改变了虚拟化的方式。
Docker的架构
- Docker daemon (Docker 守护进程):Docker daemon是一个运行在宿主机的后台进程。可通过Docker客户端与之通信。
- Client (Docker客户端):Docker客户端是Docker的用户界面,它可以接受用户命令和配置标识,并与Docker daemon通信。图中,docker build等都是Docker相关命令
- Images(Docker镜像):Docker镜像是一个只读模板,它包含创建Docker容器的说明。它和系统安装光盘有点像,使用系统安装光盘可以安装系统,同理,使用Docker镜像可以运行Docker镜像中的程序
- Container(容器):容器是镜像的可运行实例。镜像和容器的有些类似于面向对象中,类与对象的关系,可通过Docker Api或者CLI命令来启动,停止,移动,删除。
- Registry : Docker Registry是一个集中存储与分发镜像的服务。构建完Docker镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,就需要手动复制。此时可借助Dokcer Registry来避免镜像的手动复制。一个Docker Rgistry可包含多个Docker仓库,每个仓库可包含多个镜像标签,每个标签对应一个Docker镜像。这跟Maven仓库有点类似,如果Docker仓库就可理解为某jar包路径,而镜像标签则可理解为jar包的版本号。Docker Registry可分为公有Docker Registry 和 私有 Docker Registry。最常用的Docker Registry莫过于官方的Docker Hub,这也是默认的Dokcer Registry.Docker Hub上存放着大量优秀的镜像,我们可使用Docker命令下载并使用。
Docker使用命令汇总
systemctl start docker #启动docker
systemctl enable docker #开机自动启动
#---------------------------------
docker version #查看版本
docker search java #搜索
docker pull java:8 #下载镜像
docker images #列出镜像
docker rmi java #删除本地镜像
docker run -d -p 91:80 nginx #新建并启动一个容器nginx :
docker ps #列出所有运行中的容器
docker ps -a #列出所有容器
docker stop {CONTAINER_ID容器ID} #停止容器
docker kill {CONTAINER_ID容器ID} #强制停止容器
docker start {CONTAINER_ID容器ID} #启动已经停止的容器
docker inspect {CONTAINER_ID容器ID} #查看容器所有信息
docker container logs {CONTAINER_ID容器ID} #查看容器日志
docker top {CONTAINER_ID容器ID} #查看容器里的进程
docker exec -it {CONTAINER_ID容器ID} /bin/bash #进入容器
docker rm {CONTAINER_ID容器ID} #删除容器
docker stop $(docker ps -q) #停用全部运行中的容器
docker rm $(docker ps -aq) #删除全部容器
docker stop $(docker ps -aq) & docker rm $(docker ps -aq) #一条命令实现停用并删除容器