• docker学习笔记


    1、在centOS7中安装步骤:

    1、先在虚拟机中安装一个干净的centOS7系统环境

    docker是个应用容器引擎,一般主要是运维吧。因此最好的学习方式是在Linux系统中来学习使用,这样更接近真实的项目开发环境。这里根据我看的视频课,需要先更新一下yum环境。更新yum环境的命令:sudo yum update

    2、安装需要的软件包

    具体的命令:yum install -y yum-utils

    3、 设置yum源

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    
    • 1
    • 2

    4、 更新yum软件包索引

    具体的命令:yum makecache fast

    5、开始安装docker

    yum install docker-ce docker-ce-cli containerd.io
    
    
    • 1
    • 2

    安装完成后,可以输入docker -v 来查看版本信息。当出现如图所示,就证明已经安装好了。
    在这里插入图片描述

    2、常用命令

    2.1 启动docker

    systemctl start docker
    
    • 1

    2.2 查询docker的启动状态

    systemctl status docker
    
    • 1

    2.3 设置开机启动docker服务

    systemctl enable docker
    
    • 1

    2.4 查看已经下载的镜像信息

    docker images
    
    • 1

    2.5 停止docker

    systemctl stop docker
    
    • 1

    镜像相关的命令

    镜像: Docker镜像是由文件系统叠加而成(是一种文件的存储形式);是docker中的核心概念,可以认为镜像就是对某些运行环境或者软件打的包,用户可以从docker仓库中下载基础镜像到本地,比如开发人员可以从docker仓库中拉去(下载)一个只包含centos7系统的基础镜像,然后在这个镜像中安装jdk、mysql、Tomcat以及自己开发的应用,最后把这些环境打成一个新的镜像。开发人员将这些镜像提交给测试人员进行测试,测试人员只需要在测试环境下运行这个镜像就可以了,这样可以保证开发人员和测试人员的环境完全一致。

    3.1 查看镜像

    docker images
    
    • 1

    3.2 拉取镜像

    这里我以拉取centos7为例子,来写命令。注意,我这里没有指定版本号,它默认会拉取centos7的最新镜像,如果需求是某一个版本,那就需要指定版本号了。

    docker pull centos:7
    
    • 1

    3.3 删除镜像

    删除镜像的话有两个参数可选,可以根据镜像的id删除镜像,也可以根据镜像的名称删除镜像。

    docker rmi name/id
    
    • 1

    4.查看&创建并启动交互式容器

    容器,也是docker中的核心概念,容器是由镜像运行产生的运行实例。镜像和容器的关系,就如同java语言中类和对象的关系。
    Docker提供的关于容器的操作有:

    • 查看容器
    • 创建容器
    • 启动容器
    • 停止容器
    • 文件拷贝
    • 目录挂载
    • 查看容器ip地址
    • 删除容器

    查看容器

    查看正在运行的容器使用命令:docker ps
    查看所有容器使用的命令:docker ps -a

    在这里插入图片描述

    创建并启动容器

    可以基于已有的镜像来创建和启动容器,创建与启动容器使用命令:docker run
    其中,可以携带一些参数,具体的参数说明如下:

    • -i : 表示运行容器
    • -t : 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
    • –name : 为创建的容器命名。
    • -v : 表示目录的映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个 -v 做多个目录或者文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
    • -d : 在run后面加上-d 参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加 -i -t两个参数,创建后就会自动进去容器)。
    • -p : 表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个 -p 做多个端口映射
      创建并启动交互式容器:这里我以刚才拉去的那个centos7镜像为例,来创建交互式容器。
      命令: docker run -it --name=mycentos7 centos:7 /bin/bash(这里后面的意思是进入到bin目录,然后用bash脚本来操作)
      成功后的截图如下:
      在这里插入图片描述
      注意看,启动后,这里的centos7i变化了,说明我们进入到创建的容器里面去了。

    创建并启动守护式容器 : 创建并启动守护式容器后,容器可以在后台运行。
    在创建交互式容器之后,如果退出容器的话,容器处于停止状态,可以使用命令再次启动容器,使用命令进入容器并操作。
    对于一个需要长期操作的容器,我们可以创建一个一个守护式容器。值得注意的是,守护容器的名字避免重复。

    # 创建并启动守护式容器
    docker run -di --name=mycentos2 centos:7
    
    # 启动容器后再进入容器
    docker exec -it mycentos2 /bin/bash
    
    • 1
    • 2
    • 3
    • 4
    • 5

    具体运行的截图
    在这里插入图片描述
    可以看到,已经创建成功了。

    停止容器 :docker stop mycentos2(可以看到stop后面接的是容器的名字
    这里放一下截图,可以看到,容器停止后,使用命令查看容器的状态,显示已经停止了
    在这里插入图片描述
    启动容器docker start mycentos2

    可以看到截图,显示已经成功启动。
    在这里插入图片描述

    文件拷贝

    • 将Linux宿主机中的文件拷贝到容器内可以使用命令:
    # docker cp 需要拷贝的文件或者目录 容器名称:容器目录
    
    # 创建一个文件adb.txt
    touch abc.txt
    
    • 1
    • 2
    • 3
    • 4

    目录挂载

    可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而去影响容器。

    创建容器时添加-v参数,后边为宿主机目录容器目录,例如: docker run -di -v/usr/local/test:/usr/local/test–name=mycentos3 centos7

    # 创建linux宿主机要挂载的目录
    mkdir /usr/local/test
    
    //创建并启动容器mycentos3,并挂载linux中的/usr/local/test目录到容器的/usr/local/test;也就是在linux中的/usr/local/test中操作相当于对容器相应的目录操作
    docker run -di -v /usr/local/test:/usr/local/test --name=mycentos2 centos:7
    
    #在Linux下创建文件
    touch /usr/local/test/def.txt
    
    #进入容器
    docker exec -it mycentos2 /bin/bash
    #删除容器(注意:只能删除停止运行的容器,不能够删除正在运行的容器)
    docker rm mycentos2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    提示工程 vs 微调 vs RAG
    MySQL 如何添加索引
    C语言初学1:详解#include <stdio.h>
    【yolov4】基于yolov4深度学习网络目标检测MATLAB仿真
    涛思 TDengine 2.6+版本 安装试用
    Generative AI 新世界 | 文生图领域动手实践:预训练模型的微调
    open-set recognition(OSR)开集识别
    可用于嵌入式的解释器调研对比,及lua解释器介绍
    12. Java异常及异常处理处理
    8条IM即时通讯开发iOS端移动网络调优建议
  • 原文地址:https://blog.csdn.net/qq_44819959/article/details/125832962