centos7安装docker及基础命令

233 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第2天,点击查看活动详情

centos7安装docker及基础命令

Docker是一个开放源码的产品,分为 社区版(Community Edition,缩写为 CE)和 企业版(Enterprise Edition,缩写为 EE)。社区版是免费的,而企业版包含一些收费服务,一般来说个人开发者用社区版就足够了,本篇博文的教程也只是针对社区版。

1、安装操作系统centos7

  • 实验环境: CentOS-7-x86_64-Minimal-2009.iso

  • 新安装的centos没有ip地址

     # 查看ip地址
     ip addr
    
  • 编辑网络配置文件,将onboot改为yes

     vi /etc/sysconfig/network-scripts/ifcfg-ens33
     ​
     # 重启网络
     # CentOS7执行这条
     service network restart
     ​
     # CentOS8执行这条
     nmcli c reload
    
  • 用MobaXterm连接上centos,方便操作

2、docker安装

官方文档:docs.docker.com/engine/inst…

  • 更新yum包

      sudo yum update -y
    
  • 安装一些必要的依赖包

      sudo yum install -y yum-utils
    
  • 配置 docker-ce 仓库

     sudo yum-config-manager \
         --add-repo \
         https://download.docker.com/linux/centos/docker-ce.repo
    
  • 安装 docker-ce

     sudo yum install -y docker-ce docker-ce-cli containerd.io
    
  • 设置 Docker 开机自启

     sudo systemctl enable docker
    
  • 启动 Docker 服务

      sudo systemctl start docker
    
  • 验证Docker,查看docker容器版本

    [root@localhost pzx]# docker -v
    Docker version 20.10.16, build aa7e414
    
  • 运行hello-world测试容器

    [root@localhost pzx]#  sudo docker run hello-world
    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    2db29710123e: Pull complete
    Digest: sha256:80f31da1ac7b312ba29d65080fddf797dd76acfb870e677f390d5acba9741b17
    Status: Downloaded newer image for hello-world:latest
    
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    
    ....
    

3、docker基础语法

3.1、镜像操作命令

  • 查看所有镜像

    docker images
    
  • 从dockerhub种搜索镜像

    docker search nginx
    
  • 下载某个镜像

    docker pull redis
    
  • 删除镜像

    docker rmi -f 镜像id # 删除单个
    docker rmi -f 镜像名:tag 镜像名:tag # 删除多个 
    docker rmi -f $(docker images -qa) # 删除全部
    
  • 镜像导入

    # 方式1
    docker load  < <文件名>
    # 方式2
    docker load --input <文件名>
    # 方式2的简写
    docker load -i  <文件名>
    
    • 实例

      # 方式1
      docker load < ./nginx-latest.tar
      # 方式2
      docker load --input ./nginx-latest.tar
      # 方式2的简写
      docker load -i ./nginx-latest.tar
      
  • 镜像导出

    docker save -o <保存路径> <镜像名称:标签>
    
    • 实例

      docker save -o ./nginx-laest.tar nginx:latest
      

3.2、容器命令

  • 新建容器并启动

    docker run [OPTIONS] IMAGE [COMMAND][ARG...]
    docker run -d -it -p 8888:80 --net bridge --name tomcat01 tomcat /bin/bash
    
    # 常用参数说明 
    --name="Name" # 给容器指定一个名字 
    -d # 后台方式运行容器,并返回容器的id! 
    -i # 以交互模式运行容器,通过和 -t 一起使用 
    -t # 给容器重新分配一个终端,通常和 -i 一起使用 
    -P # 随机端口映射(大写) 
    -p # 指定端口映射(小写),
    -v #数据卷映射
    -net #设置网络连接模式
    一般可以有四种写法 
       ip:hostPort:containerPort 
       ip::containerPort 
       hostPort:containerPort (常用) 
       containerPort
    指定所用的shell
    
  • 启动停止容器

    docker start (容器id or 容器名) # 启动容器
    docker restart (容器id or 容器名) # 重启容器 
    docker stop (容器id or 容器名) # 停止容器
    docker kill (容器id or 容器名) # 强制停止容器
    docker enable (容器id or 容器名) # 开机自起
    docker disbale (容器id or 容器名) # 取消开机自起
    
  • 删除容器

    docker rm 容器id # 移除容器
    
  • 查看运行中的所有容器

    docker ps -a
    
  • 查看容器日志

    docker logs -f -t --tail 容器id 
    
  • 进入正在运行的容器

    #命令1 最后的bin/bash是指定具体的shell
    docker exec -it 容器id  /bin/bash 
    

3.3、备份、恢复或迁移数据卷

  • 官网地址:docs.docker.com/storage/vol…

  • 将/dbdata备份到ubuntu挂载目录/backup/backup.tar

    docker run --rm --volumes-from dbstore -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata
    # dbstore 容器名称
    # /dbdata 备份的卷
    # /backup/backup.tar 备份目录