2026/4/18 11:46:36
网站建设
项目流程
外贸网站如何seo推广,公众号开发者id在哪找,潍坊网站制作保定公司,怎样做一元购网站文章目录 核心概念指令一、守护进程#xff08;Docker Daemon#xff09;二、镜像#xff08;Image#xff09;三、容器#xff08;Container#xff09;四、卷管理五、容器挂载卷 数据卷多个容器挂载数据卷容器 Docker 容器和镜像的细节Docker镜像原理Dockerfile关键字D…文章目录核心概念指令一、守护进程Docker Daemon二、镜像Image三、容器Container四、卷管理五、容器挂载卷数据卷多个容器挂载数据卷容器Docker 容器和镜像的细节Docker镜像原理Dockerfile关键字Docker Compose一、核心生命周期命令最常用必须记住二、重建 / 更新服务三、查看状态 / 日志 / 容器信息四、进入容器 / 执行命令五、管理 volume / network通常自动管理六、查看配置非常重要七、一次性任务很实用八、停止但保留环境https://www.runoob.com/docker/docker-tutorial.html核心概念镜像Image类似 Windows 的安装包或便携版软件容器Container类似已安装并运行的程序实例Dockerfile类似软件的构建和打包说明书指令一、守护进程Docker Daemon操作命令说明启动 Docker 服务sudo systemctl start docker启动后台引擎停止 Docker 服务sudo systemctl stop docker关闭后台服务重启 Docker 服务sudo systemctl restart docker重启引擎查看状态sudo systemctl status docker查看 daemon 运行状态查看守护进程信息docker info显示引擎和配置查看 Docker 日志Linuxsudo journalctl -u docker -f实时查看日志二、镜像Image操作命令说明查看本地镜像docker images列出本地镜像搜索镜像docker search nginx在 Docker Hub 搜索拉取镜像docker pull nginx:latest下载镜像删除镜像docker rmi nginx:latest删除指定镜像删除全部镜像docker rmidocker images -qdocker images -q 是列出所有镜像id容器转化为镜像docker commit容器名称/ID镜像名称:版本保存镜像为压缩文件docker save -o myapp.tar myapp:1.0导出镜像从压缩文件加载镜像docker load -i myapp.tar导入镜像从 dockerfile 构建镜像docker build -fdockerfile文件位置-t myapp:1.0 .若 Dockerfile 不在当前目录就必须用-f明确路径否则会报错找不到。最后的.表示构建上下文即要打包进镜像的文件所在目录三、容器Container操作命令说明查看容器docker ps仅显示运行中容器查看全部容器docker ps -a包括已停止的容器创建并启动容器docker run -d --name容器名称 -p 8080:80 nginx-d 表示后台运行8080:80表示 “宿主机端口:容器端口”进入容器终端docker exec -it mynginx /bin/bash进入容器交互停止容器docker stop 容器ID/容器名称启动容器docker start 容器ID/容器名称删除容器docker rm 容器ID/容器名称删除已停止的容器删除所有容器docker rmdocker ps -aqdocker ps -aq 表示所有的容器ID查看容器信息docker inspect 容器ID/容器名称查看日志docker logs -f mynginx实时输出容器日志导出容器为文件docker export mynginx -o mynginx.tar导出为镜像文件查看容器资源占用docker stats实时监控 CPU/内存使用四、卷管理操作命令说明创建卷docker volume create myvolume在 Docker 管理的宿主机空间创建卷列出卷docker volume ls查看所有卷查看卷详细信息docker volume inspect myvolume显示路径、挂载信息等删除卷docker volume rm myvolume删除指定卷确保没有容器在使用清理未使用卷docker volume prune -f删除所有未挂载的卷五、容器挂载卷操作命令说明容器挂载宿主机目录docker run -v /host/path:/container/path ubuntu-v 将宿主机目录挂载到容器容器挂载命名卷docker run -v myvolume:/data ubuntu-v 将卷挂载到容器路径多容器共享卷docker run --volumes-from 数据卷容器名称 ubuntu–volumes-from 可以让多个容器挂载数据卷容器临时匿名卷docker run -v /data ubuntu这里没写宿主机位置故宿主机实际路径是 Docker 管理的默认位置可以通过 docker inspect 查到注意事项目录必须是绝对路径如果目录不存在会自动创建多个容器可以挂载同一个数据卷macos 不方便在宿主机中挂载指定目录并且也不方便观察现象最好使用 linux 系统学习数据卷多个容器挂载数据卷容器注意事项容器被删除不影响挂载卷除非删除时候加了-v选项。卷内数据对挂载的所有容器同步可见。容器内主动删除文件会直接影响卷里的数据。数据卷容器挂掉不影响其他容器访问该卷。Docker 容器和镜像的细节Docker 容器不包含完整 Linux 内核。容器共享宿主机的 Linux 内核或 macOS/Windows 上的 LinuxKit 虚拟机内核这个内核由 Docker Desktop 提供因为它本质就是一个虚拟机Docker 容器是进程级隔离而不是完整虚拟机。每个容器内运行的是普通用户空间程序用户态。容器内的程序和库、工具、文件系统独立但内核态调用都会走宿主机内核。Docker 镜像只包含文件系统层比如 bin、lib、app 等不包含内核所以 Ubuntu、Alpine 镜像几十 MB 到几百 MB 就够了而不是几 GB。用户空间文件系统需要独立但是内核是共享的每个容器可能运行不同应用、依赖不同库、不同版本的工具。容器必须有自己的文件系统层bin、lib、应用代码等来保证环境一致性。如果共享用户空间文件系统可能出现版本冲突比如两个容器一个用 Python 3.11一个用 Python 3.9配置污染一个容器修改了库另一个容器会受影响Docker镜像原理思考Docker 镜像本质是什么本质是一个分层的文件系统Docker 中一个centos镜像为什么只有200MB而一个centos操作系统的iso文件要几个GCentos的iso镜像文件包含bootfs和rootfs而docker的centos镜像复用操作系统的bootfs只有rootfs和其他镜像层Docker 中一个tomcat镜像为什么有500MB而一个tomcat安装包只有70多MB由于docker中镜像是分层的tomcat虽然只有70多MB但他需要依赖于父镜像和基础镜像所有整个对外暴露的tomcat镜像大小500多MBDocker 镜像本质是分层的tar文件集合分层的文件系统每层包含文件系统差异。不同平台Linux vs Windows可能使用不同的基础镜像层linux/amd64vswindows/amd64。Linux文件系统由bootfs和rootfs两部分组成bootfs包含 bootloader引导加载程序和 kernel内核rootfs root 文件系统包含的就是典型 Linux 系统中的 /dev、/proc、/bin、/etc 等标准目录和文件不同 linux 发行版之间的bootfs基本一样而rootfs不同如 ubuntu、centos 等Dockerfile关键字https://www.runoob.com/docker/docker-dockerfile.htmlDocker Composehttps://www.runoob.com/docker/docker-compose.html最新的语法是docker compose空格而不是老的docker-compose横杠。横杠版本已被官方标记为 deprecated。一、核心生命周期命令最常用必须记住命令作用docker compose up -d启动服务后台运行docker compose up启动服务前台日志docker compose down关闭并删除容器、网络docker compose stop停止容器但不删除docker compose start启动已存在但停止的容器docker compose restart重启所有服务二、重建 / 更新服务命令用途docker compose up -d --build改了 Dockerfile 后重建镜像再起docker compose up -d --force-recreate强制重建所有容器即使没变docker compose up -d service_name单独重建某个容器docker compose pull拉取最新镜像实战例子只强制重建 nginx不动其他服务。docker compose up -d --force-recreate nginx三、查看状态 / 日志 / 容器信息命令用途docker compose ps查看当前 compose 的容器docker compose logs查看所有日志docker compose logs -f service_name追踪某个服务的日志docker compose top查看容器中的进程四、进入容器 / 执行命令命令用途docker compose exec 容器名 bash进入容器终端容器已运行docker compose run 容器名 bash运行并临时创建一个新容器推荐docker compose exec myapp bash五、管理 volume / network通常自动管理命令作用docker compose down -v删除容器 网络 volumesdocker compose down --rmi all删除镜像docker compose down --volumes只删 volumes企业里一般不会轻易删 volumes。六、查看配置非常重要命令用途docker compose config校验并展示规范化配置这是开发必备命令可以提前发现 YAML 格式错误。七、一次性任务很实用命令用途docker compose run --rm service command运行一次性命令用完自动删容器例子docker compose run --rm myapp ls /app八、停止但保留环境命令用途docker compose stop停止但不删容器docker compose start重启停止的容器