装修包工头接活网站,网站设计需从哪些方面考虑,视频制作素材,网页设计免费网站docker 初识Docker什么是DockerDocker与虚拟机Docker相关术语及架构镜像和容器DockerHubDocker架构 Docker命令镜像操作命令容器操作命令数据卷命令 自定义镜像镜像结构Dockerfile DockerCompose安装常用命令 初识Docker
什么是Docker
docker是一个快速交付应用#xff0c;运… docker 初识Docker什么是DockerDocker与虚拟机Docker相关术语及架构镜像和容器DockerHubDocker架构 Docker命令镜像操作命令容器操作命令数据卷命令 自定义镜像镜像结构Dockerfile DockerCompose安装常用命令 初识Docker
什么是Docker
docker是一个快速交付应用运行应用的技术。可以将程序及其依赖、运行环境一起打包为一个镜像,可以部署在任意Linux操作系统。运行时利用沙箱机制形成隔离容器各个应用互不干扰。
Docker与虚拟机
Docker将不同操作系统的函数库、程序和依赖打包在一个镜像文件中虚拟机使用Hypervisor等技术模拟计算机硬件在模拟的硬件上安装完整的操作系统
Docker的优点
Docker打包的只是阉割版的操作系统的函数库而虚拟机需要安装整个操作系统因此Docker的磁盘占用一般远低于虚拟机性能也比虚拟机好。在启动时Docker启动的是一个进程,而虚拟机需要先启动操作系统因此Docker的启动速度也更快。
Docker相关术语及架构
镜像和容器 镜像Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起称为镜像 容器镜像中的应用程序运行后形成的进程就是容器Docker会给容器做隔离对外不可见 DockerHub DockerHun是一个Docker镜像的托管平台,这样的平台称为Docker Registry Docker架构
Docker是一个CS架构由两部分组成 服务端Docker守护进程负责处理Docker指令管理镜像、容器等 客户端通过命令或RestApI向Docker服务端发送指令,可以在本地或服务端发送指令 Docker命令
镜像操作命令
docker build # 构建镜像
docker push # 推送镜像到服务
docker pull # 从服务拉取镜像
docker save # 保存镜像为一个压缩包
docker load # 加载压缩包为镜像
docker images # 查看镜像
docker rmi # 删除镜像容器操作命令
docker run # 通过镜像创建并运行容器
docker pause # 让一个处于运行状态的容器进入暂停状态
docker unpause # 让一个处于暂停状态的容器进入运行状态
docker stop # 让一个处于运行状态的容器进入停止状态
docker start # 让一个处于停止状态的容器进入运行状态
docker exec # 进入容器执行命令
docker logs # 查看容器的运行日志
docker ps # 查看所有运行的容器及状态暂停和停止的区别是暂停只是将进程挂起不再执行,而停止会释放内存和其他资源
数据卷命令
Docker容器内的资源会在容器删除时全部释放,因此如果进行服务的升级和重新打包部署时我们将丢失容器内的全部数据.可以通过数据卷挂载将容器内目录挂载在宿主机目录上以保存和修改数据。
docker volume create # 创建数据卷
docker volume ls # 数据卷列表
docker volume inspect # 检查数据卷
docker volume rm # 删除数据卷
docker volume prune # 删除未使用的数据卷可以在容器运行时通过-v 数据卷名或宿主机目录名容器内目录名 来进行数据卷的挂载。
自定义镜像
镜像结构
镜像是分层结构每一层称为一个Layer大致可分为三部分
BaseImage层包含基本的系统函数库、环境变量、文件系统Entrypoint入口是镜像中应用启动的命令其他在BaseImage基础上添加依赖、安装程序、完成整个应用的安装和配置
Dockerfile
Dockerfile是一个文本文件包含多个指令用指令说明执行什么操作来构建镜像每一个指令形成一层Layout
指令说明示例FROM设置基础镜像FROM centos:6ENV设置环境变量可在后面指令使用ENV key valueCOPY拷贝本地文件到镜像的指定目录COPY ./mysql-5.7.rpm /tmpRUN执行Linux的shell命令一般是安装过程的命令RUN yum install gccEXPOSE指定容器运行时监听的端口是给镜像使用者看的EXPOSE 8080ENTRTPOINT镜像中应用的启动命令容器运行时调用EXTRTPOINT java -jar xx.jar
更多命令参见Docker官方文档
DockerCompose
DockerCompose可以基于Compose文件帮助我们快速的部署分布式应用而无需手动一个个创建和运行容器
Compose文件是一个文本文件可以通过指定定义集群的每个容器如何运行
version: 3.8
services: mysel:image: mysql:5.7.25environment:MYSQL_ROOT_PASSWORD: 123volumes:- /tmp/mysql/data:/var/lib/mysql- /tmp/mysql/conf/hmy.cnf:/etc/mysql/config.d/hmy.cnf安装
Linux下安装
curl -L https://github.com/docker/compose/releases/download/1.29.1/docker-compose-uname -s-uname -m /user/local/bin/docker-compose修改文件权限
chmod x /usr/local/bin/docker-compose常用命令
docker-compose up #创建并启动容器
docker-compose restart #重新启动一个或几个容器