• 二. Docker的简单使用、



    一. Docker的安装-基于Centos7

    1.1.1 使用官方安装脚本自动安装

    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

    也可以使用国内 daocloud 一键安装命令:

    curl -sSL https://get.daocloud.io/docker | sh

    1.1.2 手动安装

    • 卸载旧版本
    $sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 安装Docker Engine-Community
    • 使用 Docker 仓库进行安装

    在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。

    • 设置仓库

    安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
    国内的稳定仓库:

    $ sudo yum-config-manager \
        --add-repo \
        http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    • 1
    • 2
    • 3
    • 安装 Docker Engine-Community

    $ sudo yum install docker-ce docker-ce-cli containerd.io

    • 启动Docker

    sudo systemctl start docker

    • 通过运行 hello-world 镜像来验证是否正确安装了 Docker Engine-Community 。

    $ sudo docker run hello-world

    1.1.3 卸载dokcer

    • 删除安装包

    yum remove docker-ce

    • 删除镜像、容器、配置文件等内容:

    rm -rf /var/lib/docker

    二 Docker的简单命令使用

    • **docker run ** 在容器内运行一个应用程序。

    image.png
    各个参数解析:

    • docker: Docker 的二进制执行文件。
    • run: 与前面的 docker 组合来运行一个容器。
    • centos: 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
    • **/bin/echo “Hello world”: **在启动的容器里执行的命令

    以上命令完整的意思可以解释为:Docker 以centos 镜像创建一个新容器,然后在容器里执行 bin/echo “Hello world”,然后输出结果。

    运行交互式的容器 我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现**“对话”**的能力:

    Docker 镜像指令

    1. Docker 中当前拥有哪些镜像: docker images 或者 docker image ls
    newzhong@newzhong-PC:~/Desktop$ docker images
    REPOSITORY    TAG          IMAGE ID       CREATED         SIZE
    rabbitmq      management   799381c528ac   6 months ago    254MB
    mongo         latest       5285cb69ea55   6 months ago    698MB
    mariadb       10.3         0e8d01679c3b   6 months ago    387MB
    mariadb       latest       45a5a43e143a   6 months ago    410MB
    mysql         latest       d1dc36cf8d9e   6 months ago    519MB
    redis         latest       f1b6973564e9   6 months ago    113MB
    mysql         5.7          42f82e150ec2   6 months ago    448MB
    nginx         latest       605c77e624dd   7 months ago    141MB
    redis         6.0          5e9f874f2d50   7 months ago    112MB
    hello-world   latest       feb5d9fea6a5   10 months ago   13.3kB
    centos        latest       5d0da3dc9764   10 months ago   231MB
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    其中REPOSITORY为镜像名,TAG为版本标志,IMAGE ID为镜像 id(唯一的),CREATED为镜像创建者创建的时间,SIZE为镜像大小。
    该指令能够查询指定镜像名:docker images rabbitmq,这样会列出所有的在Docker中的rabbitmq的镜像。
    image.png
    该指令还能够携带-q参数:docker images -q , -q表示仅显示镜像的 id:
    image.png

    1. 下载镜像 docker pull — docker pull redis:6.0

    docker pull是固定的,后面写上需要下载的镜像名及版本标志;若是不写版本标志,而是直接执行docker pull MySQL,则会下载镜像的最新版本。

    1. 搜索镜像 docker search
    2. 搜索镜像 指定版本 docker search Mysql:5.7
    3. 删除镜像
      1. 通过镜像id docker image rm 00

    image.png
    b. 删除指定版本 : docker image rm mariadb:10.3 若不指定版本就删除最新的
    如果要删除的镜像正在运行,就无法删除 -f 强制删除

    2.1 Docerk的容器指令

    1. 通过镜像运行容器 docker run mysql:5.7
    2. 创建并启动rabbitmq

    docker run -d -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_VHOST=/ -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest --hostname myRabbit --name rabbitmq rabbitmq

    参数说明
    -d:表示在后台运行容器;
    -p:将容器的端口 5672(应用访问端口)和 15672 (控制台Web端口号)映射到主机中;
    -e:指定环境变量:
    RABBITMQ_DEFAULT_VHOST:默认虚拟机名;
    RABBITMQ_DEFAULT_USER:默认的用户名;
    RABBITMQ_DEFAULT_PASS:默认的用户密码;
    –hostname:指定主机名(RabbitMQ 的一个重要注意事项是它根据所谓的 节点名称 存储数据,默认为主机名);
    –name rabbitmq:设置容器名称;
    rabbitmq:容器使用的镜像名称;

    image.png

    1. 设置docker启动的时候自动启动rabbitmq

    docker update rabbitmq --restart=always

    1. 启动rabbit_management
      1. 先进入rabbitmq容器
        1. docker exec -it rabbitmq /bin/bash
        2. 在执行 rabbitmq-plugins enable rabbitmq_management

    image.png
    b. 直接执行 docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management
    image.png

    2.2 docker启用和停用相关命令

    1. ** **列出容器 **docker ps**
    • **-a 😗*显示所有的容器,包括未运行的。
    • **-f 😗*根据条件过滤显示的内容。
    • **–format 😗*指定返回值的模板文件。
    • **-l 😗*显示最近创建的容器。
    • **-n 😗*列出最近创建的n个容器。
    • **–no-trunc 😗*不截断输出。
    • **-q 😗*静默模式,只显示容器编号。
    • **-s 😗*显示总的文件大小。
    1. 通过容器的 id 启动docker start [id]
    2. 通过容器的 id 重启docker restart [id]
    3. 通过容器的 id 停止docker stop [id]
    4. 通过容器的 id 直接杀死容器docker kill [id]

    2.3 日志

    1. 容器运行日志容器id:docker logs [id]
    2. 要想Linux一样实时的刷新日志使用-f参数: docker logs -f [id]
    3. 加-t 显示日志的时间戳

    image.png

    2.4 进程交互命令

    1. 运行 的那些进程: docker top [id]
    2. 进入容器: docker exec -it 463e3e91f709 bashimage.png
      1. 退出 exit 或者ctrl+ D
    3. 文件从外部复制到docker的容器里面 docker cp /usr/local/1.jar [id]:/usr/local/jar
    4. 也可以将容器里面的文件复制到外部:docker cp 463e3e91f709:/home/1.log /usr/local/

    image.png

  • 相关阅读:
    从零玩转人脸识别
    猿创征文|云原生|kubernetes学习之多账户管理--权限精细化分配放啊(两种方式-sa和用户)
    3D打印服务展示预约小程序的效果如何
    bctoolbox 交叉编译
    【雕爷学编程】Arduino BLDC
    狂神redis笔记04
    MySql优化
    react配置项目路径别名@
    微服务之商城系统
    Hadoop学习总结(使用Java API操作HDFS)
  • 原文地址:https://blog.csdn.net/qq_38212913/article/details/126237554