docker入门(1)----服务/镜像/容器/数据卷相关命令

news/2024/10/31 7:34:22/

安装

  • 官网安装app
  • 命令行安装(但是没有图形界面app)brew install docker

架构

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
  • Docker 客户端(Client):Docker 客户端通过命令行或者其他工具使用 Docker SDK (https://docs.docker.com/develop/sdk/) 与 Docker 的守护进程通信。
  • Docker 主机(Host):一个物理或者虚拟的机器用于执行 Docker 守护进程和容器
    请添加图片描述

配置镜像加速器

登录https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors创建账号,点击左上角找到容器镜像服务,选择镜像加速器,将加速器地址复制保存

打开docker,选择设置,选择docker engine,将加速器地址复制进去,输入完之后选择apply&restart

{"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"features": {"buildkit": true},"registry-mirrors": ["https://mnq9hehw.mirror.aliyuncs.com"]
}

可以使用命令docker info检查有没有配置成功

镜像相关命令

  • 查看本地镜像:docker images
  • 搜索某个镜像:docker search <image name>, eg docker search redis
  • 下载某个镜像:docker pull <image name> ,eg docker pull redis
  • 下载某个版本的镜像:docker pull <REPOSITORY>:<version>,具体支持的版本号需要去hub.docker.com网站查找
  • 删除某个镜像:
    • docker rmi <image ID>, image ID 可通过docker images命令查看
    • docker rmi <REPOSITORY>:<TAGS>,两个不同版本的镜像的image ID相同,此时可以通过TAGS删除
  • 查看所有镜像的ID:docker images -q
  • 删除所有镜像:
docker rmi `docker images -q`

容器相关命令

  • 运行容器:
    • docker run -it --name=<name> <REPOSITORY>:<TAG> /bin/bash, -i表示容器保持一致运行,-t表示给容器分配一个伪终端,<REPOSITORY>:<TAG>表示运行某镜像,/bin/bash表示打开一个shell脚本
    • docker run -id --name=<name> <REPOSITORY>:<TAG>, -d表示后台运行容器
  • 退出容器:exit,通过-it创建的容器一经退出就自动关闭,-d创建的容器不会自动关闭
  • 查看容器:docker ps -a,-a表示查看所有历史运行容器,status为up表示正在运行
  • 进入正在运行的容器内部:docker exec -it <NAMES> /bin/bash
  • 启动历史容器:docker start <NAMES>
  • 查看某个容器的信息:docker inspect <NAMES>
  • 停止正在运行的容器:docker stop <NAMES>
  • 删除容器:docker rm <NAMES>
  • 查看所有容器的ID:docker ps -aq
  • 删除所有容器:(正在运行的容器是不能被删除的)
docker rm `docker ps -aq`

容器数据卷

概念

  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 即使docker容器删除,宿主机中的数据卷仍然存在,只要再次挂载该数据卷,数据就可以再次恢复
  • 一个数据卷可以被多个容器同时挂载,一个容器也可以挂载多个数据卷

作用

  • 容器数据持久化
  • 外部机器和容器间接通信
  • 通过同一个数据卷挂载到两个容器上间接实现两个容器之间数据交换

配置数据卷

  • 创建启动容器时,使用-v参数设置数据卷
    • 目录必须是绝对路径
    • 如果目录不存在,会自动创建
    • 可以挂载多个数据卷
docker run ... -v 宿主机目录(文件):容器内目录(文件) \-v 宿主机目录(文件):容器内目录(文件) \-v 宿主机目录(文件):容器内目录(文件)...
// docker run -it --name=qjl \-v /opt/project1/:/opt/project_container1 \-v /opt/project2/:/opt/project_container2 \mysql:5.0

数据卷容器

概念

如果docker内有两个容器c1、c2,使用容器数据卷进行容器间的数据交换的操作是使这两个容器均挂载到同一个数据卷上。
数据卷容器就是另一种办法:创建一个新的容器c3并挂载到数据卷上,再使c1、c2挂载到c3容器上,此时也就相当于c1、c2、c3挂载到同一个数据卷上了

配置

  • 创建启动c3数据卷容器,使用-v参数设置数据卷
docker run -it --name=c3 -v /volume centos:7 /bin/bash
  • 创建c1、c2容器,使用–volumes-from参数设置数据卷
docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash

http://www.ppmy.cn/news/163568.html

相关文章

miui10,miui11,miui12 rom下载,支持市面常见机型

提供MIUI10&#xff0c;MIUI11&#xff0c;MIUI12 ROM包&#xff0c;其中包含稳定版、国开版、极简开发版、波兰版本。统计如下&#xff1a; 系统&#xff1a; MIUI12内测版-20.5.14-纯净 MIUI12内测版-20.5.30-纯净 MIUI12内测版-20.6.18-纯净 MIUI12稳定版-2020年8月19日-纯…

u10linux,腾达U10无线网卡驱动

腾达U10无线网卡驱动 腾达U10无线网卡驱动是官方驱动程序,本驱动适用于&#xff1a;Windows XP /Windows 7 / Windows 8 / Windows 10 32/64位操作系统,安装此驱动后&#xff0c;才可以正常工作&#xff0c;本网站提供了驱动安装教程&#xff0c;请阅读使用。 频段2.4GHz 网络标…

Win10 GTX1050 TI 下NVIDIA驱动 CUDA和CUDNN的安装(超详细)!亲测有效!

Nvidia驱动下载&#xff1a;官方驱动 | NVIDIA CUDA10安装配置 CUDA10的安装包可直接从NVIDIA官网下载。根据相应的系统选项&#xff0c;我选择的是cuda_10.1.168_425.25_win10.exe(大小为2.3G)&#xff0c;安装的时候建议选择 自定义 而不是“精简”(从下面的英文解释可以看…

windows下MX150显卡安装cuda11.3+cudnn8.4.1+torch1.12.0+torchvision0.13.0+torchaudio0.12.0

文章目录 1&#xff09;安装Anaconda2&#xff09;查看显卡驱动支持的最高CUDA版本3&#xff09;查看pytorch官方推荐CUDA版本4&#xff09;下载CUDA并安装5&#xff09;下载cudnn安装6&#xff09;使用conda安装torch、torchvision、torchaudio和cudatoolkit&#xff08;不成功…

十进制转化为16进制

有以下种方式实现&#xff0c;其中两种是使用系统函数&#xff0c;另一种是直接自己编写。 main() { int u100; char u16[10]; int w0,a,b,i; printf("请输入一个数字-->"); scanf("%d",&u10); //u1016; if(u100) { u16[0]0; w; } else { au10; w…

c语言编程 把十进制转换为十六进制

#include<stdio.h> main() { int u10; char u16[10]; int w0,a,b,i; printf ( "请输入一个数字-->" ); scanf ( "%d" ,&u10); if (u100) { u16[0] 0 ; w; } else { au10; while (a) { ba%16; if (b<10) { u16[w] 0 b; } else { u16[w] …

Oracle Linux download

前言 Oracle Linux发布的三个最新更新的ISO映像。自2006年以来&#xff0c;Oracle Linux已经完全免费下载和使用。免费的源代码&#xff0c;二进制文件和更新。可再发行的自由。免费供生产使用。 Installation Guides Installation guides: Oracle Linux 7, Oracle Linux 8Cr…

2022最详细,最新的 Win11/WIN10 安装CUDA11.2和cuDNN(必坑之作)完美教程

注意条事项&#xff0c;避免踩坑&#xff1a; 第一、windows系统安装CUDA &#xff0c;CUDA本版必须是你的显卡支持的版本。比如我的RTX3060&#xff0c;cuda>11.0。 第二、专业的游戏笔记本 一般自动安装好了最新显卡驱动&#xff0c;一般不用更换。显卡驱动是笔记本电脑…