• 【Docker的安装和基础命令】


    Docker的安装和基础命令

    Docker的安装

    Docker联网下的安装

    • 使用 yum 安装(CentOS 7下)

    • Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。

    • 通过 uname -r 命令查看你当前的内核版本

    [root@master opt]# uname -r
    
    • 1

    3.10.0-1160.el7.x86_64

    • 安装Docker

    • Docker 软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里,安装命令如下:

    [root@master opt]# yum -y install docker
    
    • 1
    • 启动Docker

      [root@master opt]# service docker start
      
      • 1
    • 测试运行 hello-world

      [root@master opt]# docker run helloworld
      
      • 1
    • 查看Docker版本

      [root@master opt]# docker -v
      
      • 1

    Docker离线的安装

    • 上传docker安装包,本次上传至”/opt/”文件夹下

      [root@master opt]# cd  /opt
      
      • 1
    • 安装包百度网盘路径

      链接:https://pan.baidu.com/s/1jiIKufOtoceMeNLdrwTPiw
      提取码:yyuu

    • 解压docker安装包

      [root@master opt]# tar xzvf docker-20.10.16.tgz
      
      • 1
    • 进入docker目录,将目录下的所有文件拷贝至”/usr/bin/”

      [root@master opt]# cd docker
      [root@master docker]# cp * /usr/bin/
      
      • 1
      • 2
    • 配置docker开机自启动

      • 创建docker.service文件
      [root@master docker]# vi /etc/systemd/system/docker.service
      
      • 1

      #粘贴以下内容:

      [Unit]

      Description=Docker Application Container Engine

      Documentation=https://docs.docker.com

      After=network-online.target firewalld.service

      Wants=network-online.target

      [Service]

      Type=notify

      ExecStart=/usr/bin/dockerd

      ExecReload=/bin/kill -s HUP $MAINPID

      LimitNOFILE=infinity

      LimitNPROC=infinity

      TimeoutStartSec=0

      Delegate=yes

      KillMode=process

      Restart=on-failure

      StartLimitBurst=3

      StartLimitInterval=60s

      [Install]
      WantedBy=multi-user.target

      • 给文件增加权限
      [root@master docker]# chmod +x /etc/systemd/system/docker.service
      [root@master docker]# systemctl daemon-reload
      
      • 1
      • 2
      • 开机启动
      [root@master docker]# systemctl enable docker.service
      
      • 1
    • 启动docker

      [root@master docker]# systemctl start docker
      
      • 1
    • 测试docker是否安装完成

      [root@master docker]# docker -v
      
      • 1

    Docker的基础命令

    • 查看docker中的镜像

      [root@master docker]# docker images
      
      • 1
    • 联网情况下搜索mysql镜像

      [root@master docker]# docker search mysql
      
      • 1
    • 离线的情况下加载mysql镜像

      • mysql的镜像包

        链接:https://pan.baidu.com/s/1GHhsDeSq-PPCunK0lK1tIQ 
        提取码:1234
        
        • 1
        • 2
      [root@master docker]# docker load
      
      • 1
      • /opt/service/mysql_image.tar 为mysql镜像的位置
    • 使用docker运行mysql

      • [root@master docker]#  docker run -itd --name mysqlname -d --restart=always -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
        
        • 1
        • -p 3307:3306 :前面的3307是linux映射出去的端口,后面的3306是mysql在docker镜像中的固定端口
        • -d --restart=always :开机自启动
        • -e MYSQL_ROOT_PASSWORD=123456 :mysql的root密码
        • –name mysqlname: 运行的镜像名
    • 查看所有docker运行的进程

      [root@master docker]# docker ps -a
      
      • 1

      CONTAINER ID IMAGE COMMAND … PORTS NAMES
      1ef22aeaff4c mysql:5.7 “docker-entrypoint.s…” … 33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp mysqlname

    • 先关闭mysql进程,找到mysql对应的CONTAINER ID

      [root@master docker]# docker stop 1ef22aeaff4c  
      
      • 1
    • 再移除mysql进程

      [root@master docker]# docker rm 1ef22aeaff4c  
      
      • 1
    • 如果想删除镜像

      [root@master docker]# docker images
      
      • 1

      REPOSITORY TAG IMAGE ID CREATED SIZE
      mysql 5.7 14905234a4ed 13 days ago 495MB

    • 找到mysql对应的IMAGE ID,使用docker rei 进行删除

      [root@master docker]# docker rmi 14905234a4ed   
      
      • 1

    Docker构建mysql镜像

    • 创建mysql文件夹并打开文件夹

      [root@master docker]# mkdir -p /opt/test/mysql
      [root@master docker]# cd /opt/test/mysql/
      [root@master mysql]# 
      
      • 1
      • 2
      • 3
    • 上传初始化mysql文件:test.sql到/opt/test/mysql下

      [root@master mysql]# vi Dockerfile
      # 粘贴以下内容到Dockerfile文件中去
      FROM mysql:5.7
      MAINTAINER dong
      ADD ./test.sql /docker-entrypoint-initdb.d/
      EXPOSE 3306
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • FROM mysql:5.7 :在mysql5.7的基础上构造镜像
      • ADD ./test.sql /docker-entrypoint-initdb.d/ :将 本目录下的test.sql 加入到docker初始化数据库的文件中去
      • EXPOSE 3306 :docker对外暴露出去的端口号
    • 构建mysql对象

      [root@master mysql]# docker build -t mysql:5.7c .
      
      • 1
    • 运行mysql镜像

      [root@master mysql]# docker run -d --name myMysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=test -p 3307:3306 mysql:5.7c --lower_case_table_names=1
      
      • 1
      • -e MYSQL_DATABASE=test:指定在yanhua数据库运行上面文件的test.sql
      • –lower_case_table_names=1 :mysql中不区分大小写
  • 相关阅读:
    Redis 缓存预热、缓存雪崩、缓存击穿、缓存穿透业务实践
    打假Yolov7的精度,不是所有的论文都是真实可信
    深度学习概念——端对端
    二分法,平衡二叉树、B树、B+树
    [KALI] 开启ssh远程连接
    es6新增方法
    算法----删掉一个元素以后全为 1 的最长子数组
    python数据分析-面试题
    Spring事务管理接口:PlatformTransactionManager、TransactionDefinition和TransactionStatus
    比特币ord程序wallet_constructor.rs文件支持一次性铸造1000个代币,并将它们分配到40个UTXO上(每个UTXO上分配25个代币),并设置找零地址
  • 原文地址:https://blog.csdn.net/m0_49889089/article/details/127690969