docker平台中常用的镜像,容器,和数据卷操作指令

2023-11-02

docker平台中常用的镜像,容器,和数据卷操作指令

  • 卸载Docker

    • sudo yum remove docker-ce
      docker-ce-client
      docker-client-latest
      docker-common
      docker-latest
      docker-latest-logrotate
      docker-logrotate
      docker-engine
  • 在线安装docker

    • 第一步安装一组工具:

      sudo yum install -y yum-utils
      
    • 第二步:设置yum仓库地址

      sudo yum-config-manager \
          --add-repo \
          https://download.docker.com/linux/centos/docker-ce.repo
      
      
      sudo yum-config-manager \
           --add-repo \
           http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      
      
    • 第三步:更新yum缓存

      sudo yum makecache fast #yum 是包管理
      
    • 第四步:安装新版docker

      sudo yum install -y docker-ce docker-ce-cli containerd.io
      
  • 离线安装Docker

    • 下载docker离线包:

      • https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz
    • 下载离线安装工具

      • https://github.com/Jrohy/docker-install/
    • 在linux环境下,创建/root/setup/docker目录,然后拷贝下载好的资源到此目录(可通过MobaXterm工具直接上传到linux目录)

    • 执行安装操作

      • # 进入/root/setup/docker 文件夹
        cd /root/setup/docker
        
        # 为 install.sh添加执行权限
        chmod +x install.sh
        
        # 安装
        ./install.sh -f docker-20.10.6.tgz
        
        
    • 安装成功后检查安装状态

      • docker info
        
  • Docker 服务的基本操作

    • 启动docker服务:systemctl start docker
      查看docker状态:systemctl status docker
      设置docker开机自启:systemctl enable docker
      禁用docker开机自启:systemctl disable docker
      重新启动docker服务:systemctl restart docker
      查看docker信息:docker info
      停止docker服务:systemctl stop docker
      
  • Docker 镜像操作

    • 下载镜像:docker pull hello-world
      查看所有镜像:docker image
      查看镜像详情:docker inspect hello-world(镜像名或镜像id或镜像id的前三位)
      查看镜像历史:docker history hello-world
      导出镜像文件:docker save hello-world | gzip > hello-world.tar.gz
      删除镜像文件:docker image rm hello-world
      导入镜像操作(要在hello-world.tar.gz文件所在目录下执行): docker load < hello-world.tar.gz
      运行镜像文件:docker run hello-world
      
  • Docker 容器操作实践

    • -it:这是两个参数(-i表示交互式操作,-t表示终端)

    • bash表示进入操作终端,基于交互式进行相关操作

    • 下载CentOS镜像:docker pull centos:7
      创建并启动容器:docker run -it 镜像名/镜像id前几位 bash
      		例如:docker run -it centos:7 bash
      查看docker运行中的容器(要在宿主机执行docker指令):docker ps
      查看docker运行中的所有容器:docker ps -a
      查看容器日志logs信息:docker container logs 802(容器id的前三位)
      停止容器:docker container stop 802
      重启容器:dockerscontainer restart 802
      当容器处于运行状态,要进入容器可以使用docker exec命令(若没有运行时,执行此命令会出问题):docker exec -it 802 bash
      
      退出容器:exit
      删除容器:docker container rm 802(若容器正在运行执行此命令会出错)
      删除正在运行的容器:docker container rm -f 802
      清除所有处于终止状态容器:docker container prune(执行完后,可以通过docker ps -a查看容器是否删除了)
      
  • 数据卷操作:

    • 创建数据卷:docker volume create container-vol
      查看所有数据卷:docker volume ls
      查看指定数据卷的信息:docker volume inspect container-vol
      启动挂载数据卷的容器:docker run -it --mount source=container-vol,target=/root centos:7 bash (简写:docker run -it -v  container-vol:/root centos:7 bash)
      删除数据卷(如果数据卷被容器使用则无法删除):docker volume rm container-vol
      清理无主数据卷:docker volume prunm
      
      
  • Dockerfile及镜像制作实践

    • 把压缩包jdk-8u51-linux-x64.tar.gz拷贝到/root/setup/jdk中

    • 进入jdk-8u51-linux-x64.tar.gz文件所在目录:基于vim创建Dockerfile文件:vim Dockerfile

    • 拷贝:
      FROM centos:7
      ADD jdk-8u51-linux-x64.tar.gz /usr/local/docker
      ENV JAVA_HOME=/usr/local/docker/jdk1.8.0_51 \
          PATH=/usr/local/docker/jdk1.8.0_51/bin:$PATH
      CMD ['bash']
      
    • 制作JDK镜像

    • 创建jdk镜像文件:在Dockerfile所在目录执行docker build指令

      • docker build -t jdk:8 .  #不要丢掉这里的点,-t表示镜像标识(镜像名),是tag单词的缩写.
        
    • 运行JDK镜像文件

      • docker run -it jdk:8 bash
        
    • 基于JDK镜像启动sentinel:

      • 第一步:将sentinel-dashboard-1.8.0.jar拷贝宿主机指定目录,例如/root/servers目录(servers目录不存在可以自己创建)。

      • 启动镜像容器,通过java执行运行web服务

        基于jdk:8镜像启动运行sentinel服务(服务启动后可在宿主机通过localhost:8180进行访问)

        docker run -d -p 8180:8080 --name sentinel \
        -v /root/servers:/usr/sca \
        jdk:8 java -jar /usr/sca/sentinel-dashboard-1.8.0.jar
        
        1. -d 表示后台运行
        2. -p 用于实现端口映射(假设外部要访问这个容器,必须要做端口映射)
        3. –name 表示为启动的容器起一个名字
      • 这里,服务启动后可通过docker ps 指令查看启动的服务,假如看不到服务,可能服务启动失败,可通过如下指令查看具体日志

        docker container logs  689 #这里689为容器id,也可以为你的容器名
        
      • 第三步:打开浏览器,访问sentinel服务.
        在windows中打开浏览器,输入你的ip地址(这个ip为远端宿主机的ip地址),端口号为宿主机的端口号.(8081)

    • 制作Sentinel镜像文件

    • 通过docker images指令查看centos:7是否存在,然后将 jdk-8u51-linux-x64.tar.gz,sentinel-dashboard-1.8.0.jar放在/root/setup/sentinel目录(目录不存在的话自己创建)

      • 第一步:在sentinel所在目录创建Dockerfile文件,并添加如下内容

        • FROM centos:7
          ADD jdk-8u51-linux-x64.tar.gz  /usr/local/
          ADD sentinel-dashboard-1.8.0.jar  /usr/local/
          ENV JAVA_HOME=/usr/local/jdk1.8.0_51 \
              PATH=/usr/local/jdk1.8.0_51/bin:$PATH
          EXPOSE 8080
          ENTRYPOINT ["java","-jar","/usr/local/sentinel-dashboard-1.8.0.jar"]
          
          
      • 第二步:使用 Dockerfile 构建镜像(在Dockerfile所在目录执行docker指令)

        • docker build -t  sentinel:8 .  #不要丢掉这里的点
          
      • 第三步:后台运行sentinel容器

        • docker run -d --name sentinel8181 -p 8181:8080 sentinel:8  #-d 表示后台运行,-p用于指定端口映射,sentinel:8为镜像文件名
          
      • 第四步:查看sentinel容器

        • docker ps
          
      • 第五步:访问sentinel服务

  • 安装Mysql数据库

    • 安装mysql

      • 下载:docker pull mysq:8.0.23
        检查:docker images
        运行mysql镜像:
        	sudo docker run -p 3306:3306 --name mysql \
            -v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
            -v /usr/local/docker/mysql/conf:/etc/mysql \
            -v /usr/local/docker/mysql/logs:/var/log/mysql \
            -v /usr/local/docker/mysql/data:/var/lib/mysql \
            -e MYSQL_ROOT_PASSWORD=root \
            -d mysql:8.0.23
        假如安装过程中失败了,则可通过docker ps -a 查看以前的容器,假如已存在,则通过docker rm 镜像id 删除再重新安装即可。
        
    • 登录mysql服务:

      • 进入容器:sudo docker exec -it mysql bash
        登录mysql,一定要先进入mysql:mysql -uroot -proot
        停止mysql:docker stop mysql
        启动mysql:docker start mysql
        查看mysql启动时的日志:docker container logs mysql
        设置mysql开机自启动:docker update mysql --restart=always
        
  • 安装Redis数据库

    • 安装redis

      • 下载镜像文件:docker pull redis
        准备配置文件:
        	1.创建redis配置文件目录:mkdir -p /usr/local/docker/redis01/conf
        	2.在配置文件录下创建redis.conf配置文件(这个文件一定要创建,否在我们进行目录挂载时默	认生成的是一个目录):touch /usr/local/docker/redis01/conf/redis.conf
        创建redis实例并启动:
            sudo docker run -p 6379:6379 --name redis01 \
            -v /usr/local/docker/redis01/data:/data \
            -v /usr/local/docker/redis01/conf/redis.conf:/etc/redis/redis.conf \
            -d redis redis-server /etc/redis/redis.conf 
        查看正在运行的进程:docker ps
        
    • 访问redis服务器:

      • 第一步:控制台直接连接redis测试:docker exec -it redis01 bash
        第二步:检测redis 版本:redis-server  -v  或者:redis-cli -v
        第三步:登录redis(默认不需要密码):redis-cli
        或者直接将上面的两个步骤合为一个步骤执行也可以,指令如下:ocker exec -it redis01 redis-cli
        
        停止访问:docker stop redis01
        启动访问:docker start redis01
        重启访问:docker restart redis01
        
        
  • 安装Nginx代理

    • 安装Nginx

      • 下载:docker pull nginx
        查看:docker images
        创建数据卷(这个对象会在宿主机直接创建一个目录):docker volume create nginx-vol
        查看数据卷对应的宿主机目录,可以通过如下指令:docker inspect nginx-vol
        启动nginx服务:docker run --name nginx  -p 80:80 -v nginx-vol:/etc/nginx -d nginx
        
        停止访问:docker stop nginx
        启动访问:docker start nginx
        重启访问:docker restart nginx
        
  • 安装Nacos组件

    • 安装nacos组件:

      • 第一步下载:docker pull nacos/nacos-server:1.4.1
        
        第二步: mysql中执行nacos的sql脚本文件
        1)将此文件nacos-mysql.sql(这个文件可从code服务器下载)拷贝到mysql容器的宿主机对应的挂载目录(可通过docker inspect mysql查看你mysql的挂载目录)
        2)在linux环境下启动并登录mysql进入mysql容器(前提是mysql已启动):docker exec -it mysql bash
        登录mysql:mysql -uroot -p
        3)通过source指令运行容器目录下的sql文件:source  /etc/mysql/nacos-mysql.sql  #这里的/etc/mysql为容器中的一个目录(要选择你自己挂载的目录)
        
        
        第三步:创建并启动nacos容器(拷贝下面内容时,账号和密码要用自己宿主机ip,自己数据库的账号密码):
                    docker run  \
                    -e TZ="Asia/Shanghai" \
                    -e MODE=standalone \
                    -e SPRING_DATASOURCE_PLATFORM=mysql \
                    -e MYSQL_DATABASE_NUM=1 \
                    -e MYSQL_SERVICE_HOST=192.168.126.129 \
                    -e MYSQL_SERVICE_PORT=3306 \
                    -e MYSQL_SERVICE_USER=root \
                    -e MYSQL_SERVICE_PASSWORD=root \
                    -e MYSQL_SERVICE_DB_NAME=nacos_config \
                    -p 8848:8848 \
                    --name nacos \
                    --restart=always \
                    -d nacos/nacos-server:1.4.1
        
        第四步:检查nacos服务:docker ps
        假如启动失败,检查启动日志,例如:docker container logs nacos(其中,nacos的启动日志在/home/nacos/logs/start.out文件中。
        
        访问nacos服务
        启动nacos,然后在windows中输入http://ip:port/nacos方式进行访问测试(port为:8848)
        
        
        停止访问:docker stop nacos
        启动访问:docker start nacos
        重启访问:docker restart nacos
        
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker平台中常用的镜像,容器,和数据卷操作指令 的相关文章

随机推荐

  • grep高级用法shell

    一 grep命令的基本概念和用途 grep命令是linux中一种强大的文本搜索工具 它能使用正则表达式搜索文本 并把匹配的行打印出来 在一个或多个文件中搜素字符串模式 如果字符串模式包括空格 也必须被引用 模式后的所有字符串被看作文件名 搜
  • 在头文件中加入#program once

    在头文件中加入 program once 可以解决头文件被重复引用的问题 例 error C2143 语法错误 缺少 在 的前面 error C4430 缺少类型说明符 假定为 int 注意 C 不支持默认 int error C4430
  • 中国汽车工业的发展道路

    中国汽车工业的发展道路 回顾与展望 合作与自主问题 1 中国汽车工业发展的背景与回顾 1 1 认识汽车工业 汽车是惟一的一种 零件以万计 产量以百万计 保有量以亿计 的 第一商品 它的巨大市场潜力 不断产生着科技进步的不竭动力 使它成为各种
  • Kotlin中take、drop方法使用

    1 take方法 private fun take val mList mutableListOf 1 2 3 4 5 6 7 8 9 0 take函数是根据传入的参数挑出该集合 前n个元素 的子集合 val mNewList1 mList
  • 全文搜索引擎,索引库

    全文搜索引擎的工作原理理论上很简单 关键技术就是 分词 索引库 使用分词技术把 文档数据 按分词拆分 也就是一个文档拆分为多个分词 一条普通数据拆分为多个词的索引数据 这个结构就形成了 索引库 索引库存储的数据就叫索引 索引数据 所以当普通
  • 全国计算机等级考试题库二级C操作题100套(第68套)

    第68套 给定程序中 函数fun的功能是 求ss所指字符串数组中长度最长的字符串所 在的行下标 作为函数值返回 并把其串长放在形参n所指变量中 ss所指字符串数组中共有M个字符串 且串长
  • Esxi下通过虚拟文件安装lede系统(一分钟搞定)

    Esxi下通过虚拟文件安装lede系统 一分钟搞定 安装环境esxi6 7 已经提供的LEDE相关文件 安装说明 安装下面提供的图片依次设置即可 1 登录esxi 选择存储 选择数据存储浏览器 2 设置目录名称 3 安装下图将文件依次上载
  • 用 Github Codespaces 免费搭建本地开发测试环境

    如何丝滑地白嫖一个本地开发环境 怎么新建一个代码空间 1 通过Github网页新建 2 通过VSCode插件新建 为代码创建相应的开发测试环境 如何丝滑地白嫖一个本地开发环境 使用Codespaces为开发者解决这样的痛点 为项目设置和维护
  • 搞懂Mybatis逆向⼯程这一篇就够了

    Mybatis逆向 程配置与 成 使用基础版本 前置准备 项目结构 导入依赖 配置generatorConfig xml 数据库表 使用逆向工程 点击插件使用 双击之后效果 UserMapper xml的内容 UserMapper接口的内容
  • 西门子PLC各类通信协议差异对比

    西门子PLC有4大类 几十个型号类型 PLC不同所支持的通讯协议也不相同 S7 200系列支持的协议有 PPI MPI PROFIBUS 以太网 S7协议 AS INTERFACE USS MODBUS 自由口 S7 300 400系列支持
  • 人工智能在线特征系统中的数据存取技术

    主流互联网产品中 不论是经典的计算广告 搜索 推荐 还是垂直领域的路径规划 司机派单 物料智能设计 建立在人工智能技术之上的策略系统已经深入到了产品功能的方方面面 相应的 每一个策略系统都离不开大量的在线特征 来支撑模型算法或人工规则对请求
  • linux 文件句柄数查看命令

    当你的服务器在大并发达到极限时 就会报出 too many open files 查看线程占句柄数 ulimit a 输出如下 core file size blocks c 0 data seg size kbytes d unlimit
  • 微服务知识点整理

    1 Spring Cloud Netflix和Spring Cloud Alibaba包括哪些组件 Spring Cloud Netflix 主要由 Eureka Ribbon Feign Hystrix Zuul Gateway Conf
  • map的内存释放

    map在erase和clear后是否会马上释放内存 参考链接 关于c 中map的内存占用问题 原文 原文提到map在erase和clear后不会立马释放内存 而是采用类似内存池的机制 对申请的内存进行 预留 在一段时间内不使用才会予以 释放
  • AndroidUI-约束布局ConstrainLayout

    参考资料 约束布局ConstraintLayout看这一篇就够了 https www jianshu com p 17ec9bd6ca8a 约束布局ConstrainLayout 约束布局的出现主要是为了解决试图层级嵌套过多的情况 它可以在
  • Android 加解密类Cipher

    近日在做一个关于短信及文件加解密的小项目 查看了一些Android加解密方面的知识 关于加解密这部分以前完全没有接触过 所以网上乱翻了一天对于什么DES AES RSA BASE64 MD5之类的还是懵懵懂懂 这里也就不再来说它们的原理了
  • layui的穿梭框

    首先引入CSS样式和Jquery Layui插件 Html部分只有一个fieldast标签和一个设置了ID的div标签 Jq部分直接开启layui中的渲染 然后设置属性值 最主要的是elem属性 输入ID值对当前ID的div进行渲染 最后设
  • 42 最佳实践-性能最佳实践-halt-polling

    文章目录 42 最佳实践 性能最佳实践 halt polling 42 1 概述 42 2 操作指导 42 最佳实践 性能最佳实践 halt polling 42 1 概述 在计算资源充足的情况下 为使虚拟机获得接近物理机的性能 可以使用h
  • 使用Formail发送html格式的中文主题邮件,解决乱码问题等

    查了很多资料都没有很好的解决发送中文主题的html格式的邮件 要解决的乱码问题 经过摸索 最后终于搞定 且可使用shell脚本 实现多收件人发送相对比较简单 使用formail发送html格式的邮件 邮件正文内容为html的网页内容 支持更
  • docker平台中常用的镜像,容器,和数据卷操作指令

    docker平台中常用的镜像 容器 和数据卷操作指令 卸载Docker sudo yum remove docker ce docker ce client docker client latest docker common docker