Docker
是一个快速交付应用,运行应用的技术
一.作用
-
解决大型项目依赖关系复杂,不同组件依赖的兼容性问题
-
Docker
允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜像 -
Docker
应用运行在容器中,使用沙箱机制,相互隔离)
-
-
解决开发、测试、生产环境有差异的问题
-
Docker
将用户程序与所需要调用的系统函数库一起打包Docker
运行到不同操作系统时,直接基于打包的库函数,借助于操作系统的Linux
内核来运行
-
二.Docker
与虚拟机

三.镜像和容器
- 镜像(
lmage
):Docker
将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。 - 容器(
Container
):镜像中的应用程序运行后形成的进程就是容器,只是Docker
会给容器做隔离,对外不可见。
DockerHub
是一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为
DockerRegistry
四.Docker
架构
Docker
是一个CS
架构的程序,由两部分组成:
- 服务端(
server
):Docker
守护进程,负责处理Docker
指令,管理镜像、容器等 - 客户端(
client
):通过命令或RestAPI
向Docker
服务端发送指令。可以在本地或远程向服务端发送指令。

五.Docker
基本操作

注意:
shell
#查看帮助命令
docker -help
#查看具体命令的帮助
docker images --help
1.具体的镜像拉取操作
1.1DockerHub
(需要魔法):https://hub.docker.com/

1.2搜索自己需要的镜像

1.3在XSherll
上通过命令拉取镜像

1.4查看拉起到的镜像

2.利用docker save
将nginx
镜像导出磁盘,然后再通过load加载回来
2.1
shell
sudo docker save -o nginx.tar nginx:latest
#查看文件
ll

2.2
shell
#删除镜像nginx
sudo docker rmi nginx:latest
#通过load加载回来nginx
sudo docker load -i nginx.tar

六.容器相关命令

shell
docker logs #查看容器运行日志
docker ps #查看所有运行的容器及状态
docker exec #进入容器执行命令
docker rm #删除指定容器
案例1:

案例2:


七.数据卷

数据卷的作用:
【将容器与数据分离,解耦合,方便操作容器内数据,保证数据安全】
shell
sudo docker volume create 卷名 #创建数据卷
sudo docker volume ls #查看存在的数据卷
sudo docker volume inspect 卷名 #查看指定数据卷的详细信息
sudo docker volume rm 卷名 #删除指定数据卷
sudo docker volume prune #删除未使用的数据卷