网站权重如何合理分配,电商网站开发经验,报个电脑培训班多少钱,深圳保障性住房和公租房区别1. 是什么
Docker 是一个用于开发、部署和运行应用程序的开源平台#xff0c;它使用 容器化技术 将应用及其依赖打包成独立的容器#xff0c;确保应用在不同环境中一致运行。
2. Docker与虚拟机
2.1 Docker#xff08;容器化#xff09; 容器化是一种轻量级的虚拟化技术…1. 是什么
Docker 是一个用于开发、部署和运行应用程序的开源平台它使用 容器化技术 将应用及其依赖打包成独立的容器确保应用在不同环境中一致运行。
2. Docker与虚拟机
2.1 Docker容器化 容器化是一种轻量级的虚拟化技术它将应用程序及其依赖项打包成独立的容器确保应用在不同环境中一致运行。与传统虚拟机相比容器共享宿主操作系统的内核因此更轻量、更高效。 核心技术Linux 的 namespaces隔离进程、网络等和 cgroups限制资源使用。工作方式容器直接运行在宿主机的内核上共享操作系统仅封装应用的用户空间。优点资源效率高、启动快、部署简单。缺点隔离性较弱共享内核不适用于需要完全隔离内核的场景。
2.2 虚拟机VM
核心技术Hypervisor如 VMware、VirtualBox、KVM模拟硬件资源。工作方式每个 VM 包含独立的操作系统、驱动程序和应用通过 Hypervisor 访问物理硬件。优点完全隔离安全性高适用于不同操作系统或需要隔离内核的场景。缺点资源消耗大启动慢管理复杂。 暂时无法在飞书文档外展示此内容
2.3 对比
对比项Docker容器化虚拟机VM底层依赖共享宿主机的操作系统内核仅封装应用和依赖库每个 VM 包含完整的操作系统内核 应用隔离级别进程级隔离轻量级硬件级隔离重量级资源利用率高无需额外操作系统开销低每个 VM 需要独立的操作系统资源启动速度秒级直接启动应用进程分钟级需要启动完整的操作系统
3. 核心概念 3.1 镜像Image
只读的模板包含应用代码、依赖库、环境变量等类似 “应用的快照”。类似于“菜谱”例如cr2.fit2cloud.com/1panel/maxkb 就是一个镜像
3.2 容器Container
镜像的运行实例可被启动、停止、删除。类似于按菜谱做出的菜容器间相互隔离共享宿主机的操作系统内核
3.3 仓库Repository镜像源
存储镜像的地方分为公有仓库如 Docker Hub和私有仓库如 cr2.fit2cloud.com。类似于菜谱分享平台 [图片]
4 Docker常用命令
4.1 帮助命令
docker verision # 显示版本信息docker info # 显示系统信息docker 命令 --help # 帮助命令 官方帮助文档https://docs.docker.com/reference/cli/docker/
4.2 镜像命令
4.2.1 docker images 查看所有镜像
docker images [选项] [镜像名[:版本标签TAG]]
常用选项 -a, --all #列出所有镜像 -q--quiet #只显示镜像的id
4.2.2 docker search 搜索镜像
docker search [选项] TERM
4.2.3 docker pull 拉取镜像
docker pull [选项] 镜像名[:版本标签|DIGEST]
4.2.4 docker rmi 删除镜像
docker rmi [选项] IMAGE [IMAGE...]
docker rmi -f 镜像id 镜像id #删除指定的镜像docker rmi -f $(docker images -aq) #删除全部的镜像
4.2.5 docker commit 保存镜像
docker commit [选项] 容器ID或名称 [新镜像名[:标签]]
容器转镜像工具将单个容器的当前状态保存为新镜像常用选项 -a, --author 指定镜像作者信息 --authorJohn Doe johnexample.com -m, --message 添加提交信息 --messageInstalled Apache -p, --pause 提交时暂停容器默认开启 --pausefalse不暂停容器docker commit abc123 my-ubuntu-python:v1
4.3 容器命令
有了镜像才可以创建容器 docker pull centos:7 #需指定下载版本若直接pull centos ,CentOS 官方已 移除 latest 标签或镜像源中未同步 latest 版本会导致拉取失败
4.3.1 docker run 新建容器并启动
docker run [参数] image
常用选项 --nameName #为容器命名用来区分容器 -d #以后台方式运行 -it #使用交互方式运行进入容器查看内容 -p 主机端口:容器端口 #指定容器的端口示例启动并进入
4.3.2 exit 从容器退回到主机
exit # 停止容器并退回到主机 Ctrl P Q # 容器不停止退回到主机
4.3.3 docker ps 或 docker top查看服务器进程
docker ps [选项]
常用选项 (默认) # 列出当前正在运行的容器 -a #列出当前正在运行以及历史运行过的容器 -n1 #显示最近1次创建的容器 -q #只显示容器编号
docker top 容器id
4.3.4 docker rm 删除容器
docker rm [选项,] 容器id [容器id...]
docker rm 容器id #删除指定容器但无法删除正在运行的容器docker rm -f $(docker ps -aq) #删除所有容器docker ps -a -q | xargs docker rm #删除所有容器docker rm $(docker ps -a -q) #删除所有停止的容器
4.3.5 启动和停止容器
docker start 容器id #启动容器 docker restart 容器id #重启容器 docker stop 容器id #停止当前正在运行的容器 docker kill 容器id #停止当前正在运行的容器
4.4 常用其它命令
4.4.1 docker run -d 后台启动容器
docker run -d 镜像名
docker 容器使用后台运行必须要有一个前台进程若 docker 发现没有应用就会自动停止
4.4.2 docker logs 查看日志
docker logs [选项] 容器
常用选项 -tf #显示带时间戳的日志 --tail 1 #显示1条日志 #没有日志可以自己编写一段 shell 脚本 docker run -d centos /bin/sh -c while true;do echo ronghaha;sleep 1;done #每隔一秒输出一次 ronghaha #再进行日志的查看 4.4.3 docker inspect查看源数据
docker inspect 容器id
[{Id: 4d9c107c8975344c1188cd5d27351bbcca812f5ecf6600e9cc975dcfab805415,Created: 2025-05-23T10:03:37.047169586Z,Path: /bin/sh,Args: [-c,while true;do echo ronghaha;sleep 1;done],-----------------------后续内容省略----------------------4.4.4 docker exec 或 docker attach进入当前正在运行的容器
我们通常容器都是使用后台方式运行的需要进入容器修改一些配置
方式一docker exec 进入容器后开启一个新终端可进行操作常用 docker exec -it 容器id bash方式二docker attach 进入容器正在执行的终端不会启动新的进程 docker attach 容器id
4.4.5 docker cp从容器拷贝文件至主机
docker cp [选项] 容器id:文件路径 拷贝文件路径
4.5 练习
4.5.1 部署nginx
Step1: docker search nginx或者直接去 dockerhub 上查找对应版本和使用手册Step2: 下拉镜像pull docker pull nginx:1.27Step3: 运行测试 docker run -d -p 3344:80 nginx:1.27 #-d后台运行 -p宿主机端口:容器内部端口将容器的 80 端口映射到主机的 3344 端口 curl localhost:3344 #测试本地网络连接和服务可用性 curl localhost:3344
!DOCTYPE html
html
head
titleWelcome to nginx!/title
style
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
/style
/head
body
h1Welcome to nginx!/h1
pIf you see this page, the nginx web server is successfully installed and
working. Further configuration is required./ppFor online documentation and support please refer to
a hrefhttp://nginx.org/nginx.org/a.br/
Commercial support is available at
a hrefhttp://nginx.com/nginx.com/a./ppemThank you for using nginx./em/p
/body
/html看到Welcome to nginx!证明测试成功
Step4: 进入容器
→~ docker exec -it df8d23b39485 /bin/bash
rootdf8d23b39485:/# whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx4.5.2 部署tomcat 官方的下载--rm 一般用来测试用完删除 docker run -it --rm tomcat:9.0 下载再启动 docker pull tomcat:11.0 #拉取镜像 docker run -d -p 3355:8080 --name tomcat:11.0 tomcat:11.0 测试访问无问题 进入容器 docker exec -it tomcat /bin/bash
创作不易点个赞支持一下ヾ(✿▽)ノ