赞
踩
(1)可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统
(2)运行时利用沙箱机制形成隔离容器,各个应用互不干扰
(3)启动、移除都可以通过一行命令完成,方便快捷
(1)docker是一个系统进程;虚拟机是在操作系统中的操作系统
(2)docker体积小、启动速度快、性能好;虚拟机体积大,启动速度慢,性能一般
将应用程序及其依赖,环境,配置打包在一起
镜像运行起来就是容器,一个镜像可以运行多个容器
服务端:接受命令或远程请求,操作镜像或容器
客户端:发送命令或者请求到Docker服务端
一个镜像托管的服务器,类似的还有阿里云镜像服务,统称为DockerRegistry
镜像相关命令:
镜像操作命令:
① docker run 运行容器
docker run命令的常见参数
② 查看容器日志的命令:
③ 查看容器状态:
④ 删除容器:
⑤ 进入容器:
⑥ 其他命令:
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。
数据卷操作的基本语法如下:
docker volume命令是数据卷操作,根据命令后跟随的command来确定下一步的操作:
docker run的命令中通过 -v 参数挂载文件或目录到容器中:
(1)Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。
指令 | 说明 | 示例 |
FROM | 指定基础镜像 | FROM centos:6 |
ENV | 设置环境变量,可在后面指令使用 | ENV key value |
COPY | 拷贝本地文件到镜像的指定目录 | COPY ./mysql-5.7.rpm /tmp |
RUN | 执行Linux的shell命令,一般是安装过程的命令 | RUN yum install gcc |
EXPOSE | 指定容器运行时监听的端口,是给镜像使用者看的 | EXPOSE 8080 |
ENTRYPOINT | 镜像中应用的启动命令,容器运行时调用 | ENTRYPOINT java -jar xx.jar |
(2)Dockerfile的第一行必须是FROM,从一个基础镜像来构建。
(3)基础镜像可以是基本操作系统,如Ubuntu。也可以是其他人制作好的镜像,例如:java:8-alpine。
Docker Compose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器!。
Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。
利用 docker-compose up -d 来部署
- version: "3.8"
-
- services:
- mysql:
- image: mysql:5.7.25
- environment:
- MYSQL_ROOT_PASSWORD: 123
- volumes:
- - "/tmp/mysql/data:/var/lib/mysql"
- - "/tmp/mysql/conf/mysql.cnf:/etc/mysql/conf.d/mysql.cnf"
- web:
- build: .
- ports:
- - "8080:8080"
(1)推送本地镜像到仓库前都必须重命名(docker tag)镜像,以镜像仓库地址为前缀
(2)镜像仓库推送前需要把仓库地址配置到docker服务的daemon.json文件中,被docker信任
(3)推送使用docker push命令
(4)拉取使用docker pull命令
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。