( 三 ) 初识 Docker 的镜像-Docker DeskTop、docker-compose

最佳实践

了解了 Docker 之后,可以直接使用这个方法进行镜像的下载,快且方便

下载 Docker DeskTop

去官网下载,要注意版本,这一步国内网络是OK的
配置好镜像代理

{
  "builder": {
    "features": {
      "buildkit": true
    },
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
   "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}
  • Docker 镜像的适配是按照 芯片架构指令集(arch)而不是操作系统进行,在可视化页面搜索时注意区分
    比如,MacOS 的M1、M2 找 arm 架构
    Intel 找x86 架构

ARM架构
Apple M1 和 M2:
M1: Apple于2020年发布的首款自研ARM架构芯片,应用于MacBook Air、MacBook Pro、Mac mini和iMac等设备。
M2: Apple于2022年发布的第二代自研ARM架构芯片,相较于M1有性能提升和能效优化,应用于最新的MacBook和iPad Pro等设备。
x86架构
Intel:

Core系列: Intel Core i3, i5, i7, i9等系列处理器,广泛应用于个人电脑和笔记本电脑。
Xeon系列: 针对服务器和工作站的处理器,提供高性能和高可靠性。
Pentium和Celeron系列: 针对入门级市场的处理器,适用于预算有限的用户。
AMD:

Ryzen系列: 包括Ryzen 3, 5, 7, 9等处理器,提供强大的多核性能,广泛应用于个人电脑和笔记本电脑。
EPYC系列: 针对服务器市场的处理器,提供高核心数和高并发性能。
Athlon和A系列: 针对入门级市场的处理器,适用于低功耗和低成本的应用。
RISC-V架构
RISC-V:
开放指令集架构,近年来逐渐受到关注,主要应用于嵌入式系统和物联网设备,目前还在发展中。
其他架构
PowerPC:

IBM开发的RISC架构处理器,曾经广泛应用于Apple的Mac电脑和游戏主机(如任天堂Wii)。
MIPS:

一种RISC架构,主要应用于嵌入式系统和网络设备。
每种架构都有其特定的应用领域和优势,选择哪种架构通常取决于具体的使用需求和性能要求。

在这里插入图片描述

镜像加速器

https://yeasy.gitbook.io/docker_practice/install/mirror

使用 docker-compose 下载镜像

Docker DeskTop 页面查询以来网络,配置代理地址还是不行,因此使用下面的方法下载即可,节约下载镜像这个过程

https://yeasy.gitbook.io/docker_practice/compose

将需要的镜像配置复制到单独的文件夹 的 docker-compose.yml 内,控制台进入到该目录执行下面命令,以后可以使用 Docker DeskTop 管理已下载镜像

# docker-compose.yml
docker-compose up -d
指定镜像的架构版本

指定架构类型为 arm64v8

services:
  myservice:
   # platform: linux/arm64  # 一般无需指定,除非特殊版本不支持
    image: arm64v8/mysql:latest

  • 常见平台架构示例
    x86_64 系统(大多数桌面和服务器):
platform: linux/amd64

ARM64 系统(例如 Apple M1/M2):

platform: linux/arm64

32 位 ARM 系统(例如旧版 Raspberry Pi):

platform: linux/arm/v7

下载镜像之后验证

➜  Mysql git:(main) ✗ docker inspect arm64v8/mysql:latest | grep Architecture
        "Architecture": "arm64",
redis

docker-compose.yml 内容

version: "3"
services:
  redis:
    image: redis:6.2
    container_name: redis-server
    network_mode: "bridge"
    restart: unless-stopped
    ports:
      - 6379:6379
    volumes:
      - ./data:/data
    command: redis-server --appendonly yes
elasticsearch

docker-compose.yml 内容
增加额外的配置信息

discovery.type=single-node
ES_JAVA_POTS=“-Xms256m -Xmx256m”
ingest.geoip.downloader.enabled=false

version: "3"
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.15.1
    container_name: elasticsearch
    network_mode: "bridge" 
    restart: unless-stopped
    environment:
      - discovery.type=single-node
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - ./data:/usr/share/elasticsearch/data
rabbitMQ

docker-compose.yml 内容

version: "3"
services:
  rabbitmq:
    image: rabbitmq:3.9-management
    container_name: rabbitmq-server
    network_mode: "bridge" 
    restart: unless-stopped
    ports:
      - 5672:5672
      - 15672:15672
    volumes:
      - ./data:/var/lib/rabbitmq
    environment:
      - RABBITMQ_DEFAULT_USER=admin
      - RABBITMQ_DEFAULT_PASS=admin123456
mongodb

docker-compose.yml 内容

version: "3"
services:
  mongodb:
    image: mongo:4.4
    container_name: mongodb-server
    network_mode: "bridge"
    restart: unless-stopped
    ports:
      - 27017:27017
    volumes:
      - ./data:/data/db
    # environment:
      # MONGO_INITDB_ROOT_USERNAME: admin
      # MONGO_INITDB_ROOT_PASSWORD: admin123
先要启动 Docker
service docker start
Docker 镜像在哪里?

类似于 Maven ,我们既可以从一些公共 Docker Registry 获取 Docker 镜像,也可以搭建自己的 Docker Registr,截止到目前我还没有搭建自己的 Docker Registry,所以默认是从 Docker 官方的 Docker Hub ( https://index.docker.io) 来获取,然后保存在我们的本地。

Docker 镜像的查询

Docker 镜像的查询命令很简单,你只需要知道你要安装的软件的名字,然后就可以看到可得的资源列表
Docker 镜像的适配是按照 芯片架构指令集(arch)而不是操作系统进行,在可视化页面搜索时注意区分
比如,MacOS 的M1、M2 找 arm 架构
Intel 找x86 架构

docker search 镜像名字

比如你可以试一下 docker search nginx , 注意 NAME 属性的值

这里写图片描述

Docker 镜像的拉取

需要根据 Docker 镜像中的 NAME 属性值,比如上面图片为 nginx

docker pull 镜像名字(NAME 属性的值)
docker pull url/NAME (可以指定 Docker Registry 地址)
提升镜像拉取的速度:从国内仓库拉取与镜像加速

可以配置 https://dockerproxy.com 或者 http://hub-mirror.c.163.com
更多访问 https://dockerproxy.com/docs
比如访问网易云 https://c.163.com/hub#/m/home/ 比如搜索 tomcat
得到 docker pull hub.c.163.com/library/tomcat:latest

其他平台可以直接修改指定 注册服务器
https://www.jianshu.com/p/a6777385e36c

{
  "registry-mirrors": ["https://dockerproxy.com","http://hub-mirror.c.163.com"]
}

拉取的镜像保存位置

/var/lib/docker/image/overlay/repositories.json 镜像目录
/var/lib/docker/containers 存储具体镜像

查看本地的镜像列表
docker images

这里写图片描述

删除本地镜像

可能会遇到有对应的容器无法删除的情况,-f 会强制删除

docker rmi 镜像id/REPOSITORY
docker rmi -f 镜像id/REPOSITORY
删除所有的镜像

-f 会强制删除

docker rmi -f $(docker images)
将镜像内容复制到宿主机某目录

这个功能在后面将容器目录挂载的时候会用到,这样在宿主机中操作某文件夹的内容和直接在容器中操作一样,但是有时需要把容器内的文件先拷贝到宿主机中,否则在目录挂载的时候,可能会导致宿主机的空文件夹把容器被挂载目录覆盖掉。

#复制容器内的 default.xml 到宿主机
docker cp 镜像名:/etc/nginx/conf.d/default.conf \ 
/usr/java/docker/nginxlog/conf.d/default.conf
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值