docker

https://www.runoob.com/docker/docker-mirror-acceleration.html
https://www.cnblogs.com/LinryBaker/p/18796107

  • docker概述
    1.什么是docker
    docker是一款全球流行的容器管理工具,可以暂时理解为一种将程序打包的一种技术。
    在linux系统中,一切接文件,运行任何程序仅包含程序本身及其依赖库,docker可以实现将这程序和依赖库文件进行打包,便于快速部署服务,迁移等场景。
    2.虚拟机和容器技术对比

    • 启动速度,部署:
      虚拟机有开机启动流程,而容器没有此过程,因此速度快。
    • 性能:
      虚拟机的CPU,内存,磁盘都是虚拟的,在程序运行时虚拟机的程序会将指令给到虚拟的CPU,而VVM程序需要将其翻译为宿主机能够识别的指令,因此此过程会造成一定的性能消耗。
      容器技术并不会虚拟CPU,内存,而是直接使用宿主机的内核,因此性能更高。
    • 资源消耗:
      虚拟机需要安装单独的VVM程序,而后基于VVM创建虚拟机,VVM本身会占用一定的资源消耗。
      而容器技术并不需要过多资源消耗,更加轻量级,一套服务器如何能创建10台虚拟机,那么基本上容器技术实现可以创建100台+容器。
    • 数据迁移:
      从数据迁移角度来说,虚拟机迁移时需要将现有的业务在新的环境中重新部署,比如将测试环境迁移到生产环境,可能此过程较长,可能需要几个小时,甚至几天?
      而容器技术本身是一种"打包程序"的技术,因此迁移时并不需要部署服务,直接导入镜像启动容器即可。此过程秒级启动。
    • 虚拟机本身的迁移:
      一个虚拟机本身是一个操作系统,需要安装特定服务软件(vim,yum,apt,...),因此体积较大,可能上GB+。
      而容器技术本事只是针对性的对"程序文件"进行打包,因此较小,甚至能够小于1MB。
  • docker的架构 https://docs.docker.com/

    3.容器的四种状态
    Create:
    表示容器处于创建状态,但是还没有运行。
    Up:
    表示容器处于运行状态,服务是正常运行的。
    Paused:
    容器处于暂停状态,停止对外服务。有点类似于虚拟机的"挂起"。
    Exited:
    容器处于退出状态,服务停止运行。
    配置代理:
    [root@docker102 ~]# systemctl cat docker

/lib/systemd/system/docker.service

[Unit]
Description=oldboyedu linux Docke Engine
Documentation= https://docs.docker.com ,https://www.oldboyedu.com
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
配置docker代理
Environment="HTTP_PROXY=http://10.0.0.1:7890"
Environment="HTTPS_PROXY=http://10.0.0.1:7890"
[Install]
WantedBy=multi-user.target
[root@docker102 ~]#
docker images #查看镜像

从服务器拉取镜像拉取镜像

[root@harbor harbor]# docker pull 10.0.0.200:80/wkj/games:v1.6
docker pull 镜像名 #拉取最新版本的镜像
docker pull 镜像名:tag #拉取镜像,指定版本

推送镜像到服务

docker push 镜像名
docker push 镜像名:tag

推送到指定仓库``
先打先登录仓库,然后打标签
docker login -uroot 仓库地址
root@master1 ~]# docker tag hello-world:latest 10.0.0.200:80/wkj/hellow:v1.1
[root@master1 ~]# docker push 10.0.0.200:80/wkj/hellow:v1.1
The push refers to repository [10.0.0.200:80/wkj/hellow]
897b3f2a7c1b: Pushed
v1.1: digest: sha256:c766679d161d4ffe3dc4503b4c9f90b978f0d363fcedb02d1ae0cd271e645c0a size: 524
[root@master1 ~]#
导入导出
docker save -o 保存的目标文件名称 镜像名 #保存镜像为一个压缩包
docker load -i 文件名 #加载压缩包为镜像

从Docker Hub查找/搜索镜像

docker search [options] TERM
docker search -f STARS=9000 mysql #搜索stars收藏数不小于10以上的mysql镜像

删除镜像。当前镜像没有被任何容器使用 才可以删除

docker rmi 镜像名/镜像ID #删除镜像
docker rmi -f 镜像名/镜像ID #强制删除
docker rmi -f 镜像名 镜像名 镜像名 #删除多个 其镜像ID或镜像用用空格隔开即可
docker rmi -f $(docker images -aq) #删除全部镜像,-a 意思为显示全部, -q 意思为只显示ID
docker image rm 镜像名称/镜像ID #强制删除镜像

镜像改名

给镜像打标签【有时候根据业务需求 需要对一个镜像进行分类或版本迭代操作,此时就需要给镜像打上标签】

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
端口转发原理
[root@docker102 ~]# docker run --name 容器名称 -dp 宿主机端口:容器端口 镜像/apps:v1

posted on 2026-07-17 21:50  小二jerry  阅读(9)  评论(0)    收藏  举报