docker的相关知识及安装和卸载

docker的相关知识

  • docker的理念

    • 通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP可以及运行环境能够做到一次封装,到处运行。
    • docker只包含虚拟机的内核简称为linux容器。
  • docker的优势:

    • 轻量秒级的快速启动速度
    • 简单,易用活跃的社区
    • 标准统一的打包/部署/运行方案
    • 镜像支持增量分发,易于部署。
    • 易于构建,良好的restapi,也很适合自动化测试和持续集成
    • 性能尤其是尤其是内存和io的开销
  • docker的三个特性:

    • 镜像 就是image文件生成的容器实例,本身也是一个文件称为镜像文件。
    • 容器 一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的应用实例,也就是我们的容器。
    • 仓库 就是放了一堆镜像文件的地方,我们可以把镜像发布到仓库中,需要的时候再从仓库中拉下来就可以了。
  • docker的安装:

    • 查看centos 7的版本uname -r
    • cat /etc/redhat-release
    • 安装docker sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    • sudo yum-config-manager add-repo https://mirrors.aliyun.com/linux/centos/docker-ce.repo
    • sudo yum makecache fast 更新yum的软件包的索引
    • sudo yum install docker-ce docker-ce-cli containerd.io 安装社区版的docker
    • sudo systemctl start docker 启动docker
    • 打开网站配置阿里云的镜像加速https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 配置镜像加速根据阿里云的网站
    • 测试 docker run hello-world
  • docker的命令

    • docker version //docker的版本

    • docker info //docker的详细信息

    • docker --help 命令帮助

    • docker images 列出本机上的镜像 docker images -a 列出本地所有的镜像(含中间镜像层) docker images -q显示当前镜像的id docker images --digests 显示镜像的摘要信息 docker images --no-trunc 显示镜像的完整信息

        REPOSITORY :表示镜像的仓库源
        TAG :镜像的标签
        IMAGE ID:镜像的id
        CREATED:镜像创建的时间
        SIZE:镜像的大小
      
    • docker search tomcat查找镜像文件 docker search -s 30 tomcat 列出收藏值不小于30的镜像文件 docker search --no-trunc tomcat 显示镜像文件的详细信息

    • docker pull 镜像文件的名字 拉取镜像文件 docker pull tomcat:latest 默认拉取的是最新版本 如果要指定版本需要在:后面加上版本号

    • docker rmi 镜像文件的id 删除某个镜像文件 docker rmi -f hello-world 强制删除 docker rmi -f $(docker images -qa)

    • docker -i 以交互式的模式运行容器,通常与-t使用 启动容器

    • docker -t 为容器重新分配一个伪输入终端,通常与-i一起使用 启动容器

    • docker ps 列出当前正在运行的容器

    • docker ps -a 正在运行的加历史运行的 -i 显示最近创建的容器 -n 3 显示最近的三条容器的记录 -q 只显示容器编号

    • exit 退出容器 ctrl +p+q 容器不停止退出

    • docker start id或者容器的名字 启动容器

    • docker restart id 重启容器

    • docker stop id或者容器名字 停止容器

    • docker kill id或者容器名字 强制停止容器

    • docker rm 容器的id 删除已经停止的容器 docker rm -f 容器的id 强制删除容器

    • docker run -d 容器名 启动守护式容器 docker run -it -p 8888:8080 tomcat

    • docker logs -f -t --tail 容器id

    • docker top 容器id 查看容器内运行的进程

    • docker inspect 容器id 查看容器内部的细节

    • 进入正在运行的容器并以命令行进行交互 docker exec -it 容器的id bashShell(你要执行的命令) 这个会启动新的进程 docker attach 容器id 不会启动新的进程 docker exec -it 容器id /bin/bash

    • docker cp 容器id:需要拷贝的文件 目标路径 拷贝文件

  • docker的镜像

    • 镜像是一种轻量级的,可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件。
    • 联合文件系统 分层的结构是为了保证资源的共享。
    • docker commit 提交容器副本使之成为一个新的镜像
    • docker commit -m “提交的描述信息” -a “作者” 容器id 要创建的目标镜像名
  • docker的数据卷(就是数据持久化)

    • docker run -it -v 本地路径:容器路径 容器id 添加文件的命令
    • 查看数据卷是否挂载成功 docker inspect 容器id 找到volumers
    • 容器和宿主机之间的数据共享
    • 容器停止退出后,主机修后数据同步。
    • docker run -it -v 本地路径:容器路径:ro 容器id 添加的文件拥有写保护
    • dockerfile
      • docker build -f /DockerFile -t zzy/centos . 构建自己的镜像 会自动实现数据持久化
    • docker的数据卷容器
      • 容器间传递共享:docker run -it --name dc02 --volumes-from dco1 zzy/centos
  • dockerfile解析

    • dockerfile是用来构建docker镜像的构建文件,是由一系列命令和参数构成的脚本。
    • 构建的三步骤:1.dockerfile 2.docker build 3.docker run
    • docker的保留关键字:
      • FROM :基础镜像,当前新镜像是基于哪个镜像的

      • MAINTAINER:镜像维护者的姓名和邮箱地址

      • RUN:容器构建的时候需要运行的命令

      • EXPOSE:当前容器对外暴露的端口

      • WORKDIR:指定创建容器后,终端默认登陆的进来的工作目录,一个落脚点

      • ENV:用来构建镜像过程中设置环境变量

      • ADD:将宿主目录下的文件拷贝进镜像且add命令会自动处理url和解压tar压缩包

      • COPY:拷贝文件和目录到镜像中

      • VOLUME:容器数据卷,用于数据保存和持久化工作

      • CMD:指定容器启动时需要运行的命令 只有最后一条命令生效

      • ENTRYPOINT:指定容器启动时需要运行的命令

      • ONBUILD:当构建一个被继承的dockerfile是运行时命令,父镜像在被子继承后父镜像后父镜像的onbuild被触发

          #dockerfile的文件在centos的基础上加vim命令和ifconfig命令
          FROM centos
          ENV mypath /tmp
          WORKDIR $mypath
          RUN yum -y install vim
          RUN yum -y install net-tools
          EXPOSE 80
          CMD echo $mypath
          CMD echo "success,---------ok"
          CMD /bin/bash
        
  • docker下载启动mysql5.6

    • docker pull mysql:5.6

    • 查看是否下在成功 docker images

    • 启动mysql

        docker run -p 3036:3306 --name mysql \
        -v /mysql/conf:/etc/mysql/conf.d \
        -v /mysql/logs:/logs/mysqllog \
        -v /mysql/data:/var/lib/mysql \
        -e MYSQL_ROOT_PASSWORD=123456 \
        -d mysql:5.6
      
    • 进入mysql mysql -u root -p密码

    • 导出数据

        docker exec 88e684824afa sh -c 'exec mysqldump --all-databases -uroot -p"123456" ' > 
        /mysql/all--database.sql
      
  • docker下载redis3.2

    • docker pull redis3.2

    • 启动redis容器

        docker run -d -p 6379:6379 --name redis \
        -v /usr/redis/data:/data \
        -v /usr/redis/redis.conf:/usr/local/etc/redis/redis.conf \
        redis:3.2 redis-server /usr/local/etc/redis/redis.conf \
        --appendonly yes
      
    • 进入客户端

      • docker exec -it 容器的id redis-cli
  • docker的镜像上传到阿里云

  • 卸载docker

    • sudo yum remove docker-ce
    • sudo rm -rf /var/lib/docker
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值