• docker安装和常用命令


    一、安装VirtualBox和相关环境

    VirtualBox安装和Linux安装

    1.1常见问题

    1.1.1 Xshell连接不到

    ①未安装 sshd 服务

    查看 sshd 服务  ps –e|grep ssh
    重启sshd 服务   service sshd restart
    
    • 1
    • 2
    1.1.2 网络设置不正确

    在这里插入图片描述
    禁用VirtualBox Host Only
    在这里插入图片描述

    打开 VirtualBox,选择Linux -> 设置 -> 网络 ->连接方式 ->桥接网卡
    界面名称选择有线方式连接
    点击OK
    
    • 1
    • 2
    • 3

    二、Docker安装与介绍

    Docker的主要目标是“Build,Ship and Run Any App,Anywhere”(一次镜像,处处运行)。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这就实现了跨平台跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

    2.1 容器与虚拟机区别

    • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程
    • 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便
    • 每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源

    2.2 Docker的基本组成

    • 镜像(image): 就是一个只读的模板。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器
    • 容器(Container): 容器就类似于一个虚拟化的运行环境,容器是用镜像创建的运行实例。容器为镜像提供了一个标准的和隔离的运行环境,它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。
    • 仓库(Repository): 是集中存放镜像文件的场所。

    2.3 Docker的安装

    2.3.1 查看Centos版本(必须是7以上版本)
    cat /etc/redhat-release
    
    • 1
    2.3.2 安装gcc相关
    yum -y install gcc
    yum -y install gcc-c++
    
    • 1
    • 2
    2.3.3安装官网安装包
    yum install -y yum-utils
    
    • 1
    2.3.4 设置stable镜像仓库
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    • 1
    2.3.5 更新yum软件包索引
     yum makecache fast
    
    • 1
    2.3.6 安装docker ce相关的源
    yum -y install docker-ce docker-ce-cli containerd.io
    
    • 1
    2.3.7 启动docker
    // 启动docker
    systemctl start docker
    // 开机自启
    systemctl enable docker
    // 停止/重启
    systemctl stop/restart docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2.4 阿里云镜像加速

    • 打开网站阿里云注册登录
    • 选择容器镜像服务
      在这里插入图片描述
    • 获取加速地址
      在这里插入图片描述
    • 重启服务器
    systemctl daemon-reload
    systemctl restart docker
    
    • 1
    • 2

    2.5 Docker run 执行过程

    在这里插入图片描述

    三、Docker常用命令

    3.1 帮助启动类命令

    //启动docker
    systemctl start docker
    //停止docker 
    systemctl stop docker
    // 重启docker 
    systemctl restart docker
    // 查看docker状态
    systemctl status docker
    // 开机启动
    systemctl enable docker
    // 查看docker概要信息
    docker info
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3.2 镜像命令

    3.2.1 docker images

    列出本地主机上的镜像
    在这里插入图片描述
    各个选项说明:

    • REPOSITORY:表示镜像的仓库源
    • TAG:镜像的标签版本号
    • IMAGE ID:镜像ID
    • CREATED:镜像创建时间
    • SIZE:镜像大小

    同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
    如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像

    OPTIONS说明:

    • -a :列出本地所有的镜像(含历史映像层)
    • -q :只显示镜像ID。
    3.2.2 docker search

    命令:docker search [OPTIONS] 镜像名字
    在这里插入图片描述
    OPTIONS说明:

    • --limit : 只列出N个镜像,默认25个
    3.3.3 docker pull

    命令:docker pull 镜像名字[:TAG],没有TAG就是最新版

    3.3.4 docker system df

    命令: docker system df 查看镜像/容器/数据卷所占的空间

    3.3.5 docker rmi

    命令: docker rmi 某个XXX镜像名字ID 删除镜像

    删除单个: docker rmi -f 镜像ID
    删除多个: docker rmi -f 镜像名1:TAG 镜像名2:TAG​
    删除全部: docker rmi -f $(docker images -qa)

    3.3.6 虚悬镜像

    仓库名、标签都是的镜像,俗称虚悬镜像

    四、容器命令

    有镜像才能创建容器,先装一个Ubuntu镜像: docker pull ubuntu

    4.1 新建+启动容器

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    // OPTIONS说明(常用)有些是一个减号,有些是两个减号
    --name="容器新名字" 为容器指定一个名称
    -d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
    -i:以交互模式运行容器,通常与 -t 同时使用
    -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
    -P: 随机端口映射,大写P
    -p: 指定端口映射,小写p
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    4.2 列出当前所有正在运行的容器

    docker ps [OPTIONS]
    // OPTIONS说明(常用)
    -a :列出当前所有正在运行的容器+历史上运行过的
    -l :显示最近创建的容器。
    -n:显示最近n个创建的容器。
    -q :静默模式,只显示容器编号。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4.3 启动/退出容器

    // 退出容器
    exit  run进去容器,exit退出,容器停止
    ctrl+p+q  进去容器,ctrl+p+q退出,容器不停止
    // 启动已停止运行的容器
    docker start 容器ID或者容器名
    // 重启容器
    docker restart 容器ID或者容器名
    // 停止容器
    docker stop 容器ID或者容器名
    // 强制停止容器
    docker kill 容器ID或容器名
    // 删除已停止的容器
    docker rm 容器ID
    // 一次性删除多个容器实例
    docker rm -f $(docker ps -a -q)
    docker ps -a -q | xargs docker rm
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    4.4 启动守护式容器(后台服务器)

    在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的后台运行模式。

    使用镜像centos:latest以后台模式启动一个容器
    docker run -d centos
    然后docker ps -a 进行查看, 会发现容器已经退出
    很重要的要说明的一点: Docker容器后台运行,就必须有一个前台进程.
    容器运行的命令如果不是那些一直挂起的命令(比如运行top,tail),就是会自动退出的。
    这时docker run -d 容器名便可解决这个问题

    4.5 查看容器日志/进程等

    // 查看容器日志
    docker logs 容器ID
    // 查看容器内部细节
    docker inspect 容器ID
    // 进入正在运行的容器并以命令行交互
    docker exec -it 容器ID bash
    重新进入docker attach 容器ID
    // attach和exec区别
    attach 直接进入容器启动命令的终端,不会启动新的进程。用exit退出,会导致容器的停止。
    exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止。
    // 从容器内拷贝文件到主机上
    docker cp  容器ID:容器内路径 目的主机路径
    // 导入和导出容器
    docker export 容器ID > 文件名.tar
    cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
    
    export 导出容器的内容留作为一个tar归档文件[对应import命令]
    import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在这里插入图片描述

    五、 Docker镜像

    镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统UnionFS

    默认Ubuntu镜像安装vim commit为新的镜像
    在这里插入图片描述

    1. apt-get update更新包管理工具
    2. apt-get -y install vim 安装vim
    3. docker commit -m="add vim" -a="zzh" e7908b4df745 ubuntu/v2 commit提交
      在这里插入图片描述
      可以看到新的镜像。

    六、本地镜像发布到阿里云

    在这里插入图片描述

    6.1、创建仓库镜像

    创建完命名空间后,创建镜像仓库
    在这里插入图片描述
    点击创建的镜像仓库可以看到提供的命令
    在这里插入图片描述

    七、Docker容器数据卷

    Docker挂载主机目录访问如果出现cannot open directory .: Permission denied
    解决办法:在挂载目录后多加一个–privileged=true参数即可

    7.1、命令和功能

     docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw  镜像名
     // 默认是rw 只读为ro(read only)
    
    • 1
    • 2

    数据卷作用和特点:

    • 数据卷可在容器之间共享或重用数据
    • 卷中的更改可以直接实时生效,爽
    • 数据卷中的更改不会包含在镜像的更新中
    • 数据卷的生命周期一直持续到没有容器使用它为止

    查看数据卷是否挂载成功:

    docker inspect 容器ID
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    MySQL表的增删改查(基础)
    【毕业设计】基于单片机的智能手环 -计步器 嵌入式 物联网 stm32
    Vue脚手架学习笔记
    DDD相关概念描述
    MMSegmentation系列之训练与推理自己的数据集(三)
    【JAVA高级】——初识JDBC中DAO数据访问对象
    HBase入门至进阶以及开发等知识梳理
    传奇登陆游戏黑屏错位以及登陆器配置和常见问题
    DADPS-生物素-炔基_CAS:2241685-22-1试剂反应原理
    《你不可不知的人性》经典语录
  • 原文地址:https://blog.csdn.net/weixin_44301439/article/details/126695764