• Docker-系统环境


    1.Docker与虚拟机的区别

    Docker是开发运行和部署应用程序的开发管理平台,它类似于虚拟机,可以独立运行,部署并管理应用。
    在这里插入图片描述

    • Docker容器提供了基于进程的隔离,而VM虚拟机提供了资源的完全隔离。
    • Docker使用宿主操作系统的内核,而VM虚拟机使用独立的内核。
    • Docker的启动速度是秒级的,VM是分钟级的。
    • Docker的集成性比VM好。

    2.Docker主要解决的问题

    • 保证程序运行环境的一致性
    • 降低配置开发环境,生产环境的复杂度和成本
    • 实现程序的快速部署和分发

    3.镜像和容器

    • 镜像
      一个镜像相当于是一个服务的模板,比如说下载一个mysql的docker,实际上就相当于是下载一个包含了mysql服务的轻量级虚拟机,我们可以基于这个镜像创建N个容器。

    • 容器
      容器相当于是镜像的实例,有点类似于编程中类和实例的关系,容器创建好后,通过运行这个容器就可以得到对应的服务。

    4.Docker的安装

    1. 安装网络工具命令
      yum install net-tools
      在这里插入图片描述

    2. 安装实用工具
      yum install -y yum-utils device-mapper-persistent-data lvm2
      在这里插入图片描述

    3. 添加yum镜像(这样后面安装docker就会快点)
      yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      在这里插入图片描述

    4. 更新yum缓存
      yum makecache fast
      在这里插入图片描述

    5. 安装docker-ce (开始安装docker ,ce表示社区版,安装会有点慢)
      yum -y install docker-ce
      在这里插入图片描述

    6. 查看docker服务
      systemctl list-unit-files | grep docker
      在这里插入图片描述
      如果显示disabled,说明docker服务不会随操作系统的启动而自动启动。
      systemctl enable docker 运行这个命令会让docker随着服务器的启动而启动
      在这里插入图片描述

    7. 启动docker服务(只用启动一次)
      systemctl start docker 开启
      systemctl stop docker 关闭
      systemctl restart docker重启
      在这里插入图片描述

    8. 查看docker信息(验证docker是否启动)
      docker info
      在这里插入图片描述

    9.查找镜像

    在这里插入图片描述
    在这里插入图片描述

    10.常用命令

    Docker命令及参数使用大全:https://www.w3cschool.cn/docker/docker-command-manual.html

    1. 查看本机已下载镜像
      docker images
      在这里插入图片描述
    字段名含义
    REPOSITORY镜像仓库源
    TAG镜像的版本
    IMAGE ID镜像的id
    CREATED镜像的创建时间
    SIZE镜像的大小
    1. 下载镜像
      docker pull 镜像地址

    2. 删除镜像
      docker rmi 镜像ID

    3. 查看本机正在运行的容器
      docker ps
      在这里插入图片描述

    4. 查看本机所有容器(不管是否在运行)
      docker container ls -a
      在这里插入图片描述

    5. 启停容器
      docker start 容器名 开启
      docker stop 容器名 停止
      docker restart 容器名 重启

    6. 删除容器
      docker rm 容器名

    7. 复制文件到容器中
      docker cp 宿主机文件路径 容器名:容器内文件路径

    8. 复制容器中的文件到主机中
      docker cp 容器id:容器内路径 目的的主机路径

    11.安装数据库

    下载镜像—创建并启动容器—连接docker里面的数据库—创建系统数据库—执行sql

    1. daocloud上拉取镜像地址
      docker pull 镜像地址
      docker pull daocloud.io/library/mysql:5.6.22
      在这里插入图片描述

    2. 创建并启动容器
      docker run --name 容器名 -e MYSQL_ROOT_PASSWORD=123456 -p 端口:端口 -d 镜像地址
      docker run --name mysql-5.6 -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d daocloud.io/library/mysql:5.6.22 (该命令需要参考daocloud详情部分)
      在这里插入图片描述
      注意:第一个3306是宿主机的端口号,也可以改成其他端口号。第二个3306是docker容器内想映射出来的端口号,这里是mysql的端口。这里必须要指定映射端口号,否则外界无法访问容器内的mysql。

    3. 连接docker里面的数据库
      在这里插入图片描述

    4. 在docker这里创建系统数据库
      在这里插入图片描述

    12.安装tomcat

    下载镜像—创建并启动容器—上传程序包到服务器指定路径,并解压—验证docker里tomcat容器指定路径下程序包上传成功—重启容器

    1. daocloud上拉取镜像地址
      docker pull 镜像地址
      docker pull daocloud.io/library/tomcat:8.0.23
      在这里插入图片描述
    2. 创建并启动容器
      docker run --name 容器名 -p 端口:端口 -d -v 服务器路径:容器路径 镜像地址
      docker run --name tomcat-8.0 -p 8080:8080 -d -v /mnt/tomcat/xbh:/usr/local/tomcat/webapps/xbh daocloud.io/library/tomcat:8.0.23
      在这里插入图片描述
    3. 上传程序包到服务器指定路径,并解压
      将程序包上传到安装了docker服务器/mnt/tomcat/xbh下
      在这里插入图片描述
    4. 验证docker里tomcat容器指定路径下程序包上传成功
      docker exec -it 容器名 bash进入容器内的bash交互命令模式查看是否挂载成功
      docker exec -it tomcat-8.0 bash
      在这里插入图片描述
      /usr/local/tomcat/webapps/xbh路径下面找到xbh.rar说明挂载成功
    5. 如果要修改程序包文件里面的内容,只能在服务器路径下的程序包进行修改,容器里也会同步修改了。不能在bash交互模式里修改。
      exit 退出bash
      cd /mnt/tomcat/xbh进入程序包路径
      vi db.properies 修改配置文件
      wq保存
      cat db.properies查看文件内容是否修改成功

    可再次进入tomcat容器验证文件内容修改成功:
    docker exec -it tomcat-8.0 bash
    cd webapps/xbh
    cat db.properies
    6. 重启容器
    docker restart 容器名
    docker restart tomcat-8.0

    13.容器使用注意事项

    • 尽量让一个容器做一件事情,或启动一个服务。
    • 尽量使用挂载的方式将数据文件挂载到容器中,容器里面尽量不要保存数据。
    • 尽量按照docker的要求使用容器,而不是像一个虚拟机那样什么都往容器里面装。
    • 尽量不要使用交互模式来直接操作容器,而是在宿主机上执行命令,或者使用docker file来进行定制。
      Docker File用于构建镜像。通过一系列指令,基于某一个原始镜像来创建一个新的镜像,基于文本文件。维护比较方便,构建比较灵活,一般运维工程师经常使用,测试工程师了解即可。
  • 相关阅读:
    QT mqtt 在子线程中使用
    视差滚动:零基础css代码实现时空穿越效果
    libfaad2 主机编译和交叉编译
    MySQL三种安装方法(yum安装、编译安装、二进制安装)
    数据结构复试知识点总结
    10-大数的基本介绍
    深度学习基础之正向传播与反向传播
    Github流出高质量高并发手册,看完面试手稳心不慌,吊打敢于提问高并发的面试官
    SveletJs学习——Reactivity模块
    【Spring Boot+Thymeleaf+MyBatis+mysql】实现电子商务平台实战(附源码)持续更新~~
  • 原文地址:https://blog.csdn.net/XGZ2IT/article/details/128045347