当前位置: 首页 > news >正文

docker容器安装与使用

1. ✅容器与虚拟机的区别

虚拟机

容器

优点

1.使用简单

2.成熟管理工具,vmware esxi vcenter,kvm,openstack

3.可以随意定制

4.启动虚拟机要经历完整的linux启动流程

1.快速部署(扩容,弹性伸缩)

2.大部分环境都有现成镜像

3.让我们不再关注系统基础设施,把关注点放在配置,升级,优化

4.不依赖硬件

5.启动容器秒级

6.相当于一个进程

缺点

1.需要硬件支持虚拟化技术(VT-X)

2.资源利用率不高

3.同一台虚拟机跑多个服务,可能有冲突

4.占用资源较多

5.不满足目前升级,快速扩容,快速部署,回滚不方便

1.使用较为复杂

2.共享linux系统内核推荐使用较新linux内核

2. ✅容器运行时选型

运行时(Runtime)

docker

containerd

一般搭配k8s使用

podman

3. ✅docker cs架构

4. ✅docker安装

4.1. 📝环境准备

主机

配置

ip

docker01.zhubl.xyz

2c4g

10.0.0.81/172.16.1.81

docker02.zhubl.xyz

2c4g

10.0.0.82/172.16.1.82

4.2. 🌟安装docker命令

1.删除系统已有的runc rm -f /usr/local/bin/runc 2.解压docker-27.0.3.tgz tar xf docker-27.0.3.tgz 3.修改所有者为root chown -R root.root docker/ 4.把解压后的命令移动到/bin/下 mv docker/* /bin/ 5.检查 docker --version 6.配置systemctl文件 mv docker.service /usr/lib/systemd/system/ 7.启用systemctl文件 systemctl daemon-reload systemctl enable docker.service --now

5. ✅docker镜像使用指南

5.1. 🚀配置docker加速器

mkdir -p /etc/docker cat >/etc/docker/daemon.json<<'EOF' { "registry-mirrors" : ["https://do.nark.eu.org", "https://dc.j8.work", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn", "https://docker.mirrors.ustc.edu.cn", "https://docker.registry.cyou", "https://docker-cf.registry.cyou", "https://dockercf.jsdelivr.fyi", "https://docker.jsdelivr.fyi", "https://dockertest.jsdelivr.fyi", "https://mirror.aliyuncs.com", "https://dockerproxy.com", "https://mirror.baidubce.com", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://docker.mirrors.ustc.edu.cn", "https://mirror.iscas.ac.cn", "https://docker.rainbond.cc", "https://do.nark.eu.org", "https://docker.shootchat.top", "https://registry.docker-cn.com"] } EOF #使用轩辕docker镜像加速器 { "registry-mirrors": [ "https://docker.xuanyuan.me" ] } #使用daocloud镜像加速器 { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://hub-mirror.c.163.com", "https://registry.docker-cn.com" ] }

5.2. 拉取镜像(有网络)

7.启动docker或重启docker,注意配置开机自启动 systemctl restart docker.service 8.检查是否生效 docker info | grep "Registry Mirrors" 9.docker pull拉取镜像测试 docker pull nginx:alpine 10.检查镜像 docker images

docker镜像的系统

说明

debian系统

功能,命令多一些

bullseye(11),bookworm(12)

ubuntu系统

功能,命令多一些,22.04

alpine系统

超级精简的系统(基础命令,工具)

  • https://hub.docker.com/镜像仓库

5.3. 导入镜像(无网络)

1.解压镜像包 tar xf docker_images.tar.gz 2.进入镜像目录 cd docker_images/ 3.使用for循环导入镜像 for n in `ls`;do docker load -i $n ;done 4.查看镜像 docker images

5.4. 导出镜像

#导出镜像包 docker image save mysql:8.0-debian -o mysql-8.0-debian.tar #导出镜像包并压缩 docker image save mysql:8.0-debian |gzip >mysql-8.0-debian.tar.gz

5.5. 删除镜像

docker image rm mysql:8.0-debian docker rmi mysql:8.0-debian

5.6. 导入镜像

docker load -i mysql-8.0-debian.tar.gz

6. ✅docker镜像的tag标签

  • 未来自建仓库用
#修改镜像的名字(类似于软链接) docker tag 原有的名字 新名字 docker tag 镜像id 新名字

7. ✅查看docker镜像容器信息

  • 查看镜像信息
docker inspect 镜像 #使用jq工具处理json格式的内容 docker inspect redis:5.0-alpine | jq '.[].Config.Env[1]' .[] 去掉中括号,只看[]里面的内容 .Config 去掉Config,只看Config里面的内容 .Env 去掉Env,只看Env里面的内容 [1] 只查看第2行

  • 查看容器信息
docker inspect 容器

镜像

选项

docker images 查看

-a查看所有镜像

--no-trunc

docker pull 拉取镜像

docker rmi 删除镜像

docker inspect 查看docker各种资源的信息

docker save/load 导出导入

tag 标签

build 创建

history

  • 查看所有的镜像
docker images -a

docker images --no-trunc

8. ✅docker容器

8.1. 运行容器

1.检查端口占用情况 ss -lntup

2.开启内核转发功能 vim /etc/sysctl.conf net.ipv4.ip_forward=1

3.运行容器 docker run --name nginx_v1 -p 80:80 -d nginx:1.24 --name:指定容器名字 要唯一 不能冲突 -p:指定端口映射 宿主机端口:容器服务端口 -d:后台运行

  • 浏览器访问
http://10.0.0.81:80

8.2. 删除容器

docker rm 容器名字/容器id docker rm -f 容器名字/容器id -f:强制删除 docker rm -f `docker ps -aq` docker ps -aq |xargs docker rm -f

8.3. 同时运行多个容器

docker run -d --name ngx_v1 -p 80:80 nginx:1.24 docker run -d --name ngx_v2 -p 81:80 nginx:1.24

8.4. 进入容器

docker exec -it ngx_v1 /bin/bash -i交互模式 -t分配终端 /bin/bash或/bin/sh

8.5. 容器与宿主机传输文件

  • 宿主机上的文件传输到容器中
docker cp index.html ngx_v1:/usr/share/nginx/html/index.html

  • 容器中的文件下载到宿主机中
docker cp ngx_v1:/usr/lib/os-release .

8.6. 容器管理

docker start|stop|restart 容器 对容器进行开/关/重启.

8.7. 容器指令总结

  • docker run (-d,--name,-p)
  • docker ps (-a,-q,--no-trunc)
  • docker rm (-f)
  • docker exec
  • docker cp

9. ✅总结

  • 容器vs虚拟化区别
  • docker cs架构(镜像,容器,镜像仓库)
  • 部署docker (shell.ans剧本)
  • 镜像指令,容器指令

http://www.jsqmd.com/news/464607/

相关文章:

  • 【Gromacs】使用伞形采样研究Her2蛋白聚集的详细操作指南
  • 国产数据库新选择:GBase-8a单机版在Linux下的保姆级安装教程(附常见问题解决)
  • STM32以太网开发实战:DP83848 vs LAN8742选型指南(附CubeMX配置)
  • MATLAB模糊控制器实战:从零搭建智能小费计算系统(附完整代码)
  • Mysql 笔记
  • PyTorch反向传播实战:从计算图到梯度下降的完整代码解析(附可视化训练过程)
  • 从数学推导到代码实现:手把手教你写PyTorch自定义权重初始化
  • 杰理AC701N的板级配置AD的使用
  • Qt信号槽进阶指南:从Qt4到Qt5的信号重载与槽函数优化(避坑大全)
  • 从零到专业:3个AI提示词框架让你工作效率翻倍(含避坑指南)
  • 1为何扣子空间智能体默认不支持短信与邮件发送:技术沙盒、安全合规与插件生态深度解析
  • FPGA开发者的效率神器:3种方法解决Vivado多版本默认启动问题(含拖拽技巧)
  • WinForm程序如何优雅地请求管理员权限?3种方法实测对比(含UAC原理)
  • DIN 75220 标准汽车阳光模拟试验与户外试验对比研究
  • 04. Capture 中 Part Manager 应用场景(二)管理变种 BOM I OrCAD X Capture CIS 设计小诀窍第三季
  • EtherCAT从零到实战:如何用树莓派搭建低成本运动控制原型(附IGH配置指南)
  • SQLyog保姆级教程:从安装到实战操作MySQL数据库(附常见问题解决)
  • 华为云ModelArts实战:5分钟搞定深度学习模型训练(附OBS上传避坑指南)
  • 从路由器转发到代码实现:图解分组交换时延计算全流程
  • 从Shadertoy到Cesium:那些GLSL移植踩过的坑(烟雾效果调试实录)
  • 实时美颜滤镜卡顿怎么办?美颜sdk滤镜特效开发优化方案
  • 从修车工视角看OBD:揭秘4S店不会告诉你的10个诊断仪使用技巧
  • 项目日程规划工具有哪些?2026年热门产品推荐与测评
  • MMDVM盒子pi-star系统4G网卡配置全攻略:从识别到路由优化
  • OpenClaw 如何与硬件结合?Voice Agent 走进物理世界的硬核经验分享丨活动回顾,Physical AI Camp 北京站
  • SystemVerilog约束调试指南:当randomize()失败时我们该检查什么?
  • 2026年机床选购指南:5大品牌对比帮你省下10万预算
  • 从Java全栈到Vue3实战:一次真实技术面试的深度剖析
  • 避坑指南:CLion Remote SSH安装Backend时网络卡顿的5种应急方案
  • PyTorch分布式训练实战:如何用Ring-AllReduce加速你的模型(附代码示例)