Docker基本部署

【经验分享】Docker容器部署方法说明 本案例适用开发环境:Windows开发环境:Windows 7 64bit、Windows 10 64bitLinux开发环境:Ubuntu 18.04.4 64bit虚拟机:VMware15.1.0Docker是一个开源的应用容器引擎,让开发者可打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,亦可实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。使用Docker,可像管理应用程序一样管理基础结构。 阅读详情
AI摘要

本文围绕Docker展开,介绍其技术原理、核心特性、战略意义与典型应用场景。详细阐述基本部署,包括核心组件安装、操作命令解析、生产级部署案例等。还涉及基本命令解析、扩展功能及选项解析,给出部署要点、命令使用原则、关键原理与核心设计原则。

目录

基本概念

‌一、Docker技术原理‌

1. ‌操作系统级虚拟化‌

2. ‌联合文件系统(UnionFS)‌

3. ‌客户端-服务端架构‌

‌二、Docker核心特性‌

1. ‌轻量高效‌

2. ‌标准化交付‌

3. ‌隔离与安全‌

4. ‌生态集成‌

‌三、Docker的战略意义‌

1. ‌技术变革‌

2. ‌经济价值‌

3. ‌行业标准‌

‌四、典型应用场景‌

基本部署

‌一、核心组件安装‌

1. ‌Ubuntu 22.04 安装‌ 46

2. ‌CentOS 8 安装‌ 6

‌二、核心操作命令解析‌

1. ‌镜像管理‌ 25

2. ‌容器生命周期‌ 15

3. ‌存储卷管理‌ 78

4. ‌网络配置‌ 7

‌三、生产级部署案例:Nginx 集群‌ 45

‌四、关键配置调优‌

1. ‌守护进程配置‌ /etc/docker/daemon.json 6

2. ‌安全增强‌ 8

‌五、部署验证与监控‌

基本命令解析

‌一、容器生命周期管理‌

1. ‌docker run 容器创建与启动‌ 14

2. ‌docker exec 容器内执行命令‌ 56

‌二、镜像管理‌

1. ‌docker build 镜像构建‌ 23

2. ‌docker push 镜像发布‌ 27

‌三、网络与存储‌

1. ‌docker network 网络配置‌ 79

2. ‌docker volume 数据卷管理‌ 78

‌四、运维监控‌

1. ‌docker logs 日志查看‌ 58

2. ‌docker stats 资源监控‌ 68

‌五、组合命令示例‌

批量清理无用容器 38

扩展

一、容器全生命周期管理‌

1. ‌高级容器启动 (docker run)‌

2. ‌容器热更新流程‌

‌二、镜像构建深度解析‌

1. ‌多阶段构建 (Multi-stage Build)‌

2. ‌构建缓存控制‌

‌三、网络拓扑实战‌

1. ‌自定义Overlay网络‌

2. ‌容器网络诊断‌

‌四、存储卷高级用法‌

1. ‌数据卷备份恢复‌

2. ‌存储驱动选择‌

‌五、安全加固命令‌

1. ‌用户命名空间隔离‌

2. ‌安全扫描‌

‌六、编排预处理命令‌

1. ‌Docker Compose部署‌

2. ‌Kubernetes准备‌

 选项解析

‌一、容器生命周期管理‌

1. ‌docker run 关键选项‌

2. ‌docker exec 高级用法‌

‌二、镜像构建与维护‌

1. ‌docker build 进阶参数‌

2. ‌docker push 认证控制‌

‌三、网络与存储配置‌

1. ‌网络驱动选项‌

2. ‌存储卷高级参数‌

‌四、系统级管理命令‌

1. ‌docker system 维护工具‌

2. ‌日志驱动配置‌


基本概念

‌一、Docker技术原理‌

1. ‌操作系统级虚拟化‌

Docker基于Linux内核的cgroups(控制组)和namespaces(命名空间)实现资源隔离,通过共享宿主机内核避免完整操作系统虚拟化开销。其架构分为:

  • ‌容器运行时‌:runc遵循OCI标准创建容器进程
  • ‌容器管理层‌:containerd管理镜像与容器生命周期
  • ‌镜像构建层‌:BuildKit解析Dockerfile构建镜像
2. ‌联合文件系统(UnionFS)‌

采用写时复制(Copy-on-Write)机制,多层镜像通过AUFS/Overlay2叠加为单一视图,实现高效存储。

3. ‌客户端-服务端架构‌
graph LR CLI-->|REST API|Daemon-->Containers Daemon-->Images Daemon-->Network 

‌二、Docker核心特性‌

1. ‌轻量高效‌
‌指标‌‌Docker容器‌‌传统虚拟机‌
启动时间秒级分钟级
内存占用MB级GB级
性能损耗<5%15%-20%
2. ‌标准化交付‌
  • ‌镜像封装‌:包含应用代码、运行时、库文件及配置,形成不可变交付单元
  • ‌Dockerfile‌:声明式构建脚本,支持版本控制与自动化构建
3. ‌隔离与安全‌
  • ‌命名空间隔离‌:PID/Network/Mount等6种命名空间实现资源隔离
  • ‌安全增强‌:Seccomp限制系统调用,AppArmor/SELinux提供强制访问控制
4. ‌生态集成‌
  • ‌编排工具‌:Kubernetes/Swarm实现容器集群管理
  • ‌CI/CD流水线‌:与Jenkins/GitLab CI深度集成

‌三、Docker的战略意义‌

1. ‌技术变革‌
  • ‌解决环境一致性‌:消除"开发-生产"环境差异,故障率降低70%
  • ‌推动云原生‌:成为微服务/Serverless的基础运行时,支撑K8s等平台
2. ‌经济价值‌
‌场景‌‌效益‌‌典型案例‌
企业私有云硬件利用率提升3-5倍沃尔玛年省$4000万许可费
边缘计算部署成本降低60%特斯拉车载应用更新
3. ‌行业标准‌
  • ‌OCI开放标准‌:主导容器运行时与镜像格式规范化
  • ‌混合云桥梁‌:实现跨公有云/私有云的无缝应用迁移

‌四、典型应用场景‌

  1. ‌微服务架构‌:每个服务独立容器化,如Netflix万级容器集群
  2. ‌持续交付‌:Git提交触发自动构建→测试→部署流水线
  3. ‌高密度部署‌:单物理机运行数百容器(如阿里云Serverless)

‌数据验证‌:2025年全球83%的企业已采用容器技术,其中Docker占比达76%(来源:Gartner)

基本部署

‌一、核心组件安装‌

1. ‌Ubuntu 22.04 安装‌ 
# 卸载旧版本 
sudo apt remove docker docker-engine docker.io containerd runc 

# 安装依赖 
sudo apt update 
sudo apt install ca-certificates curl gnupg 

# 添加官方GPG密钥 
sudo install -m 0755 -d /etc/apt/keyrings 
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg 
sudo chmod a+r /etc/apt/keyrings/docker.gpg 

# 设置仓库 
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null 

# 安装Docker引擎 
sudo apt update 
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 
2. ‌CentOS 8 安装‌ 
# 添加yum仓库 
sudo yum install -y yum-utils 
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 

# 安装核心组件 
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin 

# 启动服务 
sudo systemctl enable --now docker 

‌二、核心操作命令解析‌

1. ‌镜像管理‌ 
‌命令‌‌功能说明‌‌示例‌
docker pull拉取镜像docker pull nginx:1.25-alpine
docker build构建镜像docker build -t myapp:v1 .
docker images列出本地镜像docker images --format "table {{.ID}}\t{{.Repository}}"
docker rmi删除镜像docker rmi $(docker images -q)
2. ‌容器生命周期‌ 
# 启动容器 (-d: 后台运行, -p: 端口映射) 
docker run -d --name web -p 8080:80 nginx:alpine 

# 查看运行中容器 
docker ps --format "ID: {{.ID}}\tImage: {{.Image}}\tPorts: {{.Ports}}" 

# 进入容器终端 
docker exec -it web /bin/sh 

# 停止与删除 
docker stop web && docker rm web 
3. ‌存储卷管理‌ 
# 创建命名卷 
docker volume create app_data 

# 挂载至容器 
docker run -d -v app_data:/var/lib/mysql mysql:8.0 

# 备份卷数据 
docker run --rm -v app_data:/source -v $(pwd):/backup busybox tar czf /backup/db_$(date +%F).tar.gz /source 
4. ‌网络配置‌ 
# 创建自定义网络 
docker network create --driver bridge my_net 

# 连接容器到网络 
docker network connect my_net web 

# 查看网络详情 
docker network inspect my_net 

‌三、生产级部署案例:Nginx 集群‌ 

# 1. 创建自定义网络 
docker network create nginx_net 

# 2. 启动Nginx容器集群 
for i in {1..3}; do
 docker run -d --name nginx-$i \
 --network nginx_net \
 -v nginx_conf:/etc/nginx \
 nginx:alpine
 done 

# 3. 验证集群连通性 
docker run --rm --network nginx_net busybox ping -c 2 nginx-1 

‌四、关键配置调优‌

1. ‌守护进程配置‌ /etc/docker/daemon.json 
{ 
"log-driver": "json-file",
 "log-opts": {"max-size": "10m", "max-file": "3"},
 "storage-driver": "overlay2",
 "data-root": "/mnt/docker-data"
 } 
2. ‌安全增强‌ 
# 禁止容器权限提升 
docker run --security-opt=no-new-privileges nginx 

# 启用AppArmor防护 
docker run --security-opt="apparmor=docker-nginx" nginx 

‌五、部署验证与监控‌

# 检查Docker版本兼容性 
docker version --format 'Server: {{.Server.Version}}\nClient: {{.Client.Version}}' 

# 查看资源使用 
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" 

# 日志实时追踪 
docker logs -f --tail 100 web 

‌部署要点总结‌:

  1. 镜像标签需明确版本号避免 latest 风险 
  2. 生产环境必须配置日志轮转和存储驱动 
  3. 网络隔离是容器安全的核心防线 
  4. 数据持久化必须通过卷挂载实现 
  5. Kubernetes 已弃用 Docker 作为运行时(需改用 containerd)

基本命令解析

‌一、容器生命周期管理‌

1. ‌docker run 容器创建与启动‌ 
docker run -d --name web -p 8080:80 -v /data:/usr/share/nginx/html nginx:alpine 
‌参数‌‌作用解析‌
-d后台运行容器(detached mode)
--name web指定容器名称为web,替代默认随机命名
-p 8080:80将宿主机8080端口映射到容器80端口(格式:主机端口:容器端口)
-v /data:...挂载宿主机/data目录到容器内指定路径(数据持久化)
nginx:alpine指定镜像名称及标签(未显式指定标签时默认使用latest)
2. ‌docker exec 容器内执行命令‌ 
docker exec -it web sh -c "ls /usr/share/nginx/html" 
‌参数‌‌作用解析‌
-it分配交互式终端(-i保持STDIN打开,-t分配伪终端)
sh -c "..."在容器内启动shell并执行命令(支持管道操作等复杂命令)

‌二、镜像管理‌

1. ‌docker build 镜像构建‌ 
docker build -t myapp:v1 --build-arg ENV=prod -f ./Dockerfile . 
‌参数‌‌作用解析‌
-t myapp:v1指定镜像名称及版本标签(推荐语义化版本号)
--build-arg传递构建参数到Dockerfile(对应ARG ENV指令)
-f ./Dockerfile显式指定Dockerfile路径(默认查找当前目录下Dockerfile文件)
.构建上下文路径(决定COPY指令可访问的文件范围)
2. ‌docker push 镜像发布‌ 
docker tag myapp:v1 registry.example.com/prod/myapp:v1 && docker push registry.example.com/prod/myapp:v1 
‌命令分段‌‌作用解析‌
docker tag为本地镜像添加仓库前缀(私有仓库需包含域名/项目路径)
docker push推送镜像到远程仓库(需先执行docker login认证)

‌三、网络与存储‌

1. ‌docker network 网络配置‌ 
docker network create --driver bridge --subnet 172.28.0.0/16 my_net && docker network connect my_net web 
‌参数‌‌作用解析‌
--driver bridge指定网络驱动类型(可选host/none/overlay)
--subnet 172.28.0.0/16自定义子网地址(避免与默认网络冲突)
docker network connect将已有容器接入指定网络(支持多网络隔离)
2. ‌docker volume 数据卷管理‌ 
docker volume create app_data && docker run -v app_data:/var/lib/mysql mysql 
‌操作‌‌作用解析‌
docker volume create创建命名卷(自动管理存储位置,优于绑定挂载)
-v app_data:...挂载命名卷到容器路径(数据生命周期独立于容器)

‌四、运维监控‌

1. ‌docker logs 日志查看‌ 
docker logs --since 1h -f --tail 100 web 
‌参数‌‌作用解析‌
--since 1h仅显示最近1小时的日志
-f实时跟踪日志输出(类似tail -f)
--tail 100仅显示最后100行日志(避免刷屏)
2. ‌docker stats 资源监控‌ 
docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" web 
‌参数‌‌作用解析‌
--format自定义输出格式(支持Go模板语法)
{{.MemUsage}}显示内存使用量(含实际使用量/限制值)

‌五、组合命令示例‌

批量清理无用容器 
docker ps -aq --filter status=exited | xargs docker rm -v 
‌命令链‌‌作用解析‌
docker ps -aq静默模式(-q)列出所有容器ID(-a)
--filter status=exited过滤已退出的容器
xargs docker rm -v批量删除容器并关联卷(-v防止卷残留)

‌命令使用原则‌:

  1. 生产环境避免使用latest标签,需明确版本号
  2. 关键操作前使用docker inspect验证配置详情
  3. 优先使用命名卷而非绑定挂载保证数据可移植性

扩展

一、容器全生命周期管理‌

1. ‌高级容器启动 (docker run)‌
docker run --rm \
 --name api-server \
 --hostname node1 \
 --cpus 1.5 \
 --memory 2g \
 --publish 8080:8080 \
 --volume /etc/localtime:/etc/localtime:ro \
 --env-file .env \
 --restart unless-stopped \
 --log-driver json-file \
 --log-opt max-size=10m \
 myapp:prod 
‌参数‌‌技术解析‌
--rm容器退出时自动删除(测试环境常用)
--hostname设置容器内主机名(影响网络标识)
--cpus 1.5限制CPU使用为1.5核(基于CFS调度器)
--memory 2g硬性内存限制(超过会被OOM Killer终止)
--volume :ro只读挂载(防止容器篡改宿主机文件)
--env-file从文件加载环境变量(避免敏感信息暴露在命令历史)
--restart重启策略(生产环境推荐unless-stopped)
--log-driver日志驱动(json-file便于ELK采集)
2. ‌容器热更新流程‌
# 1. 拉取新镜像 
docker pull myapp:v2 

# 2. 停止旧容器(发送SIGTERM信号) 
docker stop api-server 

# 3. 启动新容器(保持相同配置) 
docker run -d --name api-server ... myapp:v2 

# 4. 清理旧镜像 
docker image prune -f 

‌二、镜像构建深度解析‌

1. ‌多阶段构建 (Multi-stage Build)‌
# 阶段1:构建环境 
FROM golang:1.20 as builder 
WORKDIR /app 
COPY . . 
RUN go build -o server . 

# 阶段2:运行环境 
FROM alpine:3.18 
COPY --from=builder /app/server /usr/local/bin/ 
CMD ["server"] 
‌指令‌‌优化作用‌
as builder声明构建阶段别名
COPY --from跨阶段复制文件(最终镜像不包含编译工具链)
alpine基础镜像减小镜像体积(约5MB vs Ubuntu的72MB)
2. ‌构建缓存控制‌
docker build \
 --no-cache \ # 禁用缓存
 --build-arg HTTP_PROXY=http://proxy.example.com \ # 构建时变量
 --target builder \ # 指定构建阶段
 -t myapp:ci . 

‌三、网络拓扑实战‌

1. ‌自定义Overlay网络‌
# 创建跨主机通信网络 
docker network create \
 --driver overlay \
 --subnet 10.1.0.0/24 \
 --attachable \ # 允许手动连接容器
 my-overlay-net 
2. ‌容器网络诊断‌
# 查看容器网络详情 
docker inspect \
 --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' web 

# 测试网络连通性 
docker run --rm --network my-overlay-net busybox ping -c 3 web 

‌四、存储卷高级用法‌

1. ‌数据卷备份恢复‌
# 备份PostgreSQL卷 
docker run --rm \
 --volumes-from db \
 -v $(pwd):/backup \
 alpine tar cvf /backup/db_$(date +%F).tar /var/lib/postgresql/data 

# 恢复数据 
docker run --rm \
 -v pg_data:/target \
 -v $(pwd):/backup \
 alpine tar xvf /backup/db_2025-06-20.tar -C /target 
2. ‌存储驱动选择‌
# 查看当前存储驱动 
docker info --format '{{.Driver}}' 

# 修改为性能更好的驱动(需在daemon.json配置) 
"storage-driver": "overlay2", 
"storage-opts":
 [
 "overlay2.override_kernel_check=true"
 ] 

‌五、安全加固命令‌

1. ‌用户命名空间隔离‌
# 启用userns-remap(需修改/etc/docker/daemon.json) 
"userns-remap": "default" 

# 验证映射效果 
docker run --rm alpine id # 显示非root用户 
2. ‌安全扫描‌
# 使用Snyk扫描镜像漏洞 
docker scan myapp:latest

# 最小化容器权限
docker run \
 --read-only \ # 只读文件系统
 --cap-drop ALL \ # 移除所有特权
 --security-opt no-new-privileges \
 alpine sh 

‌六、编排预处理命令‌

1. ‌Docker Compose部署‌
services:
 redis:
   image: redis:7
   deploy:
     resources:
       limits:
         cpus: '0.5'
         memory: 256M
   healthcheck:
     test: ["CMD", "redis-cli", "ping"] 
2. ‌Kubernetes准备‌
# 生成K8s部署模板
 docker run --rm \
 -v /var/run/docker.sock:/var/run/docker.sock \
 kompose convert \
 -f docker-compose.yml 

‌关键原理补充‌:

  1. --publish实际通过iptables DNAT规则实现端口转发
  2. Overlay网络依赖VXLAN封装实现跨主机通信
  3. 卷(volume)本质是主机上的/var/lib/docker/volumes/目录
  4. 容器进程隔离通过Linux namespaces + cgroups实现

 选项解析

‌一、容器生命周期管理‌

1. ‌docker run 关键选项‌
docker run \
 --cap-add NET_ADMIN \ # 添加Linux能力
 --device /dev/video0 \ # 挂载宿主设备
 --ulimit nofile=1024 \ # 限制文件描述符数量
 --health-cmd "curl -f http://localhost" \ # 健康检查
 --tmpfs /run:size=100m \ # 内存文件系统
 --security-opt seccomp=unconfined \ # 安全策略
 nginx 
‌选项‌‌技术解析‌
--cap-add授予容器特定Linux能力(默认已drop所有非必要能力)
--device允许容器直接访问宿主机物理设备(需谨慎使用)
--ulimit设置容器资源限制(覆盖宿主机默认值)
--health-cmd定义健康检查命令(影响docker ps状态显示)
--tmpfs创建内存临时文件系统(避免磁盘IO)
--security-opt自定义安全配置(可禁用seccomp或AppArmor)
2. ‌docker exec 高级用法‌
docker exec \
 --user www-data \ # 指定执行用户
 --workdir /var/www/html \ # 设置工作目录
 -e DEBUG=true \ # 传递环境变量
 web \ bash -c "ls -la" 
‌选项‌‌作用说明‌
--user以非root用户执行命令(提升安全性)
--workdir设置命令执行的工作目录(默认使用容器WORKDIR)
-e临时注入环境变量(仅本次命令有效)

‌二、镜像构建与维护‌

1. ‌docker build 进阶参数‌
docker build \
 --platform linux/arm64 \ # 跨平台构建
 --progress plain \ # 输出详细日志
 --secret id=ssh,src=$HOME/.ssh/id_rsa \ # 安全传输密钥
 --no-cache \ # 禁用缓存
 -t myapp:cross-platform . 
‌参数‌‌深层原理‌
--platform指定目标平台(需开启buildkit支持多架构)
--progress控制日志输出格式(可选auto/plain/tty)
--secret安全传递敏感文件(不会保留在最终镜像中)
2. ‌docker push 认证控制‌
docker push \
 --disable-content-trust \ # 跳过镜像签名验证
 registry.private.com/app:v1 
‌选项‌‌安全影响‌
--disable-content-trust关闭Docker Content Trust验证(降低安全性)

‌三、网络与存储配置‌

1. ‌网络驱动选项‌
docker network create \
 --driver macvlan \ # 使用MACVLAN驱动
 --subnet 192.168.1.0/24 \
 --gateway 192.168.1.1 \
 --ip-range 192.168.1.32/28 \
 macvlan-net 
‌参数‌‌网络特性‌
--driver指定网络模式(bridge/overlay/macvlan等)
--ip-range限制容器IP分配范围(防止IP冲突)
2. ‌存储卷高级参数‌
docker volume create \
 --driver local \ # 使用本地驱动
 --opt type=nfs \ # 指定存储类型
 --opt device=:/nfs/data \
 --opt o=addr=192.168.1.100 \
 nfs-volume 
‌选项‌‌存储架构‌
--opt type支持nfs/btrfs/zfs等文件系统
--opt o传递挂载选项(类似mount -o参数)

‌四、系统级管理命令‌

1. ‌docker system 维护工具‌
docker system prune \
 --all \ # 删除所有未使用对象
 --volumes \ # 包括数据卷
 --force # 跳过确认提示 
‌选项‌‌清理范围‌
--all清除所有悬空镜像(不仅是临时层)
--volumes同时删除未被容器引用的数据卷(高危操作)
2. ‌日志驱动配置‌
docker run \
 --log-driver fluentd \ # 使用Fluentd收集
 --log-opt fluentd-address=myfluentd:24224 \
 --log-opt tag="docker.web" \
 nginx 
‌参数‌‌日志管理‌
--log-driver支持json-file/syslog/fluentd等驱动
--log-opt tag自定义日志标签(便于检索)

‌核心设计原则‌:

  1. 最小权限原则:默认禁用所有非必要Linux能力
  2. 显式声明依赖:所有资源必须明确申请(CPU/内存/设备等)
  3. 不可变基础设施:容器运行后不应修改内部文件
  4. 声明式配置:优先使用Dockerfile/docker-compose.yml定义环境
Docker 使用与部署(超详细) 主要讲解了 Docker 在日常使用的命令操作和一些必会概念 阅读详情

相关推荐

docker的部署及基本用法

1.1 什么是docker?Docker是管理容器的引擎,为应用打包、部署平台,而非单纯的虚拟化技术它具有以下几个重要特点和优势:1.轻量级虚拟化Docker容器相较于传统的虚拟机更加轻量和高效,能够快速启动和停止,节省系统资源。例如,启动一个Docker容器可能只需要几秒钟,而启动一个虚拟机则可能需要几分钟。2.一致性:确保应用程序在不同的环境中(如开发、测试、生产)具有一致的运行表现。无论在本地还是云端,应用的运行环境都能保持相同,减少了因环境差异导致的问题。3.可移植性。

weixin_68398469的博客 2809

Docker 入门到实战教程(一)介绍Docker

一. Docker简介1.1 什么是虚拟化?在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务...

李浩东的博客 90万+

Centos7部署docker及基本使用

Centos7部署docker及基本使用 安装docker [root@docker ~]# yum install docker -y [root@docker ~]# systemctl start docker [root@docker ~]# systemctl enable docker Created symlink from /etc/systemd/system/multi-use...

DoloresOOO的博客 2740

Docker安装部署,最详细教程

2013年发布至今, Docker 一直广受瞩目,被认为可能会改变软件行业。但是,许多人并不清楚 Docker 到底是什么,要解决什么问题,好处又在哪里?今天就来详细解释,帮助大家理解它,还带有简单易懂的实例,教你如何将它用于日常开发。Docker是一个开源的容器引擎,它有助于更快地交付应用。 Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。Docker的优点如下:1、简化程序Dock

ChaoandPeng的博客 2万+

容器技术——Docker部署以及基本命令

文章目录背景容器名称空间(name space)Docker简介使用Docker的意义使用场景Docker引擎Docker的架构控制组部署Docker(20版)1、环境部署2、安装依赖包3、设置阿里云镜像4、安装docker-ce社区版5、启动docker配置镜像加速网络优化Docker基本操作命令镜像基本操作命令容器基本操作命令总结名称空间Docker和虚拟化比有什么优势?容器和虚拟机的区别Docker和VM解决了虚拟机什么问题docker配置文件基本命令 背景 就Linux而言,Linux操作系统会有一

ItookapillinNJ的博客 422

Docker - 基本概念、与虚拟机的区别、架构、镜像操作、容器操作、数据卷挂载

p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口(配置映射是因为用户只能通过 http 请求访问到服务器,不能直接访问到对应的容器,因此需要服务器端口与容器端口建立映射关系)这里我们有两种启动 redis 的方式,第一种是直接启动 redis ,第二种是以 AOF 持久化的方式启动容器(--appendonly yes),如下图。如果需要持续查看日志信息可以添加 -f 参数,例如:docker logs -f mn ,这里 mn 是自定义容器名称, ctrl + c 可以停止跟踪。

CYK_byte的博客 1万+

Docker概述、部署Docker 、 Docker镜像、Docker基本命令-

Docker概述、部署Docker 、 Docker镜像、Docker基本命令 Docker概述、部署Docker 、 Docker镜像、Docker基本命令

jackjack博客 7255

用Python玩转农业大数据:从Landsat遥感影像到作物产量预测实战教程

本文详细介绍了如何利用Python处理Landsat遥感影像数据,并结合土壤信息构建作物产量预测模型。从环境搭建、数据预处理到模型训练与可视化,提供了一套完整的农业大数据分析实战方案,帮助读者掌握遥感影像处理和机器学习在精准农业中的应用。

weixin_30832143的博客 397

Docker 的安装部署与基本使用

Docker 的旧版本被称为 docker,docker.io 或 docker-engine。: 随着时间的推移,持续更新和优化 Dockerfile,以利用 Docker 引擎和基础镜像的改进。: 使用多阶段构建来减小最终镜像大小,编译时使用一个包含所有工具的基础镜像,最终只保留编译产物。列出容器 docker ps -a 列出当前机器上所有的容器 -q 只列出容器的 id。:声明容器运行时监听的端口,不会发布端口,只是作为文档说明使用。: 使用标签来管理不同版本的镜像,确保使用的是优化过的版本。

qq_62866151的博客 830

[前沿技术] AMD FSR 1.0源码解析:EASU算法实现细节与优化策略

本文深入解析了AMD FSR 1.0技术的核心——EASU(边缘自适应空间升频)算法。通过剖析其源码,详细阐述了EASU如何利用12-tap采样窗口、基于Lanczos滤波器的多项式近似以及自适应的边缘检测机制,在无需AI模型的情况下实现高质量图像放大。文章重点揭示了其极致的GPU优化策略,包括寄存器利用、采样优化和避免动态分支,为理解高性能图形算法提供了绝佳范例。

docker7nomad的博客 539

LilyPad三色LED共阳极控制:从原理到Arduino编程实战

RGB LED作为可编程光源的核心组件,通过红、绿、蓝三原色的加色混合原理,能够生成丰富的色彩。其内部结构主要分为共阳极和共阴极两种类型,这决定了驱动电路的设计和编程逻辑。在电子织物和可穿戴设备领域,掌握RGB LED的控制技术对于实现动态光效和交互反馈至关重要。本文以LilyPad三色LED为例,深入解析其共阳极特性,并详细演示如何结合Arduino进行PWM编程,从而精准控制颜色与亮度,为智能服装、互动艺术装置等项目提供可靠的照明解决方案。

weixin_30237719的博客 600

Docker的部署与基本使用

Docker 基本使用

日常记录,挨打要立正! 1278

【鸿蒙游戏上架审核规范指南】

华为鸿蒙游戏上架审核规范指南摘要

weixin_44161102的博客 916

使用docker部署harbor与基本维护

使用Docker部署harbor

不妨不妨,来日方长 1352

从交换机安全配置,看常见局域网攻击

前言 构建零信任网络,自然离不开网络准入(NAC),这就涉及到交换机的一些安全测试,于是有了此文《从交换机安全配置看常见局域网攻击》。 交换机安全配置 如本文标题所说从交换机安全配置看常见的局域网攻击,那么下面提到的各种攻击方式,自然是建立在交换机安全配置之上来说的。我们通过h3c官方提供的《H3C 交换机安全加固手册》和《安全配置指导》,从这两份手册可以看出交换机支持的安全配置非常多,基本已经覆盖了各种我们熟知局域网攻击。下面就挑几个典型的攻击方式进行演示。 arp欺骗 【一>所有资源获取&lt

kali_Ma的博客 1万+

数字IC设计随笔之二(VCS、DVE|Verdi单步调试)

VCS+Verdi单步调试

ic疾风传 1万+

Docker部署Nginx 以及Nginx的基本使用

通过本文,你可以快速掌握如何在Docker中部署Nginx、挂载配置文件,以及Nginx的基本使用方法和应用场景。希望这些内容能够帮助你更好地管理和优化Web服务。

m0_68705118的博客 2043

HAL STM32+EC11编码器实现增减调节及单击、双击、长按功能

HAL STM32+EC11编码器实现增减调节及单击、双击、长按功能

perseverance51博客 4232

Docker基本操作【一篇学会项目部署】

Docker是一个虚拟环境容器,可以将你的开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中。比如,你在本地用Python开发网站后台,开发测试完成后,就可以将Python3及其依赖包、Flask及其各种插件、Mysql、Nginx等打包到一个容器中,然后部署到任意你想部署到的环境。类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。

Bit_Dong的博客 2244

【电源专题】LDO基础——热性能2

对于LDO散热而言,选择合适的元件并不是一件简单的任务。为了实现高效、尺寸得当并成本低的散热解决方案,我们在早期设计阶段就需要确保所有器件都可用并且已经考虑到元件和各种特性。

一点硬件 894

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Docker基本管理与部署

文章目录Docker概述Docker是什么?使用场景虚拟机与容器的区别Docker的核心概念及安装方式Docker核心概念CentOS安装Docker的两种方式Docker镜像的创建Docker镜像Docker镜像的创建方法安装部署Dockerdocker容器操作 Docker概述 Docker是什么? ●是一种轻量级的“虚拟机” ●在Linux容器里运行应用的开源工具 使用场景 ●打包应用程序简化部署 ●可脱离底层硬件任意迁移 ●例:服务器从腾讯云迁移到阿里云 虚拟机与容器的区别

weixin_48191719的博客 1448

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Docker基本安装部署

Docker ​ 1 Docker简介 1.1 什么是虚拟化 ​ 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算...

待定 272

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

docker部署jenkins和jenkins的基本使用

docker部署jenkins;jenkins的基本使用;jenkins创建任务;jenkins的CI/CD;

m0_63790435的博客 1755

Docker 部署工程基本命令记录

- docker network connect [选项] 网络名 容器名或容器id。

u012632105的博客 602

Linux运维之docker(一)部署及基本操作

Linux运维之docker(一) 什么是docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口 镜像的分层结构 docker与虚拟化技术对比 docker的优劣势 容器的简单部署 请...

weixin_44828950的博客 916

Docker的基本使用和SpringBoot项目部署

项目实战课程 基于SpringBoot+Vue的前后端分离项目实战课程 概述 本文将介绍Docker的安装和基本使用,以及如何在Docker中部署SpringBoot项目。 1、为什么要使用Docker 开发小明看到测试提交的bug,说:程序在我机器上跑得好好的,怎么到你那就不行了呢? 测试小王看到运维小刘发的问题报告,说:程序在这边测试得好好的,怎么到客户那边就不行了呢? 这其实是软件开发的日常,软件开发的一大麻烦问题就是:环境配置。 一个项目要跑起来,需要大量程序的支持,包括:jdk、tomcat、m

恒哥的博客 1332
上一篇: OpenStack
下一篇: Containerd容器技术
霖檬ing
博客等级 码龄2年 701粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值