1.1.Docker介绍
微服务虽然具备各种优势,但服务的拆分通常给部署带来不少冲突。docker油然而生!!!
1.1.1.Docker解决依赖问题
手段一:将应用的Libs(函数库)、Deps(依赖)、配置与应用一起打包
手段二:将每个应用放到一个隔离容器去运行,避免互相干扰
1.2.Docker与虚拟机的区别
-
可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
-
运行时利用沙箱机制形成隔离容器,各个应用互不干扰
-
启动、移除都可以通过一行命令完成,方便快捷
-
虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在 Windows 系统里面运行 Ubuntu 系统,这样就可以运行任意的Ubuntu应用了。
1.3.Docker架构
-
Docker是一个CS架构的程序,由两部分组成:
-
服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等
-
客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。
-
1.3.1.镜像与容器
-
镜像(Image):Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见。
-
1.3.2.DockerHub
-
DockerHub:DockerHub是一个官方的Docker镜像的托管平台。这样的平台称为Docker Registry。
2.Docker基本操作
2.1.镜像操作
镜像名称由两部分组成:[repository ]:[tag]
在没有指定tag时,默认事latest,代表当前镜像最高版本
2.1.1.镜像命令
- 拉取镜像——docker pull 镜像
- 查看镜像——docker images
- 删除镜像——docker rmi 镜像
- 删除所有镜像——docker rmi $(docker images -q)
- 导出镜像到磁盘——docker save -o 保存文件名称 镜像名称
- 加载本地文件 —— docker load -i 本地文件全称
2.2.容器操作
容器的三种状态:运行、暂停、停止
2.2.1.容器命令
-
docker run:创建并运行一个容器,处于运行状态
--name:指定容器名称
-p:指定端口映射
-d:让容器后台运行
-
docker pause:让一个运行的容器暂停
-
docker unpause:让一个容器从暂停状态恢复运行
-
docker stop:停止一个运行的容器
-
docker stop $(docker ps -q):停止所有运行的容器
-
docker start:让一个停止的容器再次运行
-
docker rm:删除一个容器
-
docker rm $(docker ps -aq):删除所有容器
-
docker logs:查看日志
-f:可以持续查看日志
-
docker ps 查看容器状态
-a:查看所有容器,包括已经停止的
docker run --name containerName -p 80:80 -d nginx
创建一个端口映射为80:80、名为containerName的容器以后台形式运行