Docker的常用基本命令(基础命令)

文章目录

  • 1. Docker简介
  • 2. Docker环境安装
    • Linux安装
  • 3. 配置镜像加速
  • 4. Docker镜像常用命令
    • 列出镜像列表
    • 搜索镜像
    • 下载镜像
    • 查看镜像版本
    • 删除镜像
    • 构建镜像
    • 推送镜像
  • 5. Docker容器常用命令
    • 新建并启动容器
    • 列出容器
    • 停止容器
    • 启动容器
    • 进入容器
    • 删除容器(慎用)
    • 查看日志状态
    • 文件复制

本文主要介绍了Docker的安装、镜像操作、容器操作

1. Docker简介

Docker是一个开源的应用容器引擎,让开发者可以打包应用及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上。使用Docker可以更方便地打包、测试以及部署应用程序。

重要概念:

images = 镜像(镜像相当于类概念)

container = 容器(container相当于实例的概念)

2. Docker环境安装

Linux安装

  • 安装yum-utils
yum install -y yum-utils device-mapper-persistent-data lvm2
  • 为yum源添加docker仓库位置;
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 安装docker服务;
yum install docker-ce
  • 启动docker服务。
systemctl start docker

3. 配置镜像加速

可以使用阿里云的镜像加速,参考:https://www.runoob.com/docker/docker-mirror-acceleration.html

注意:阿里云上有图文操作文档,无论你是Windows还是Mac按文档操作即可,一点不担心。如下是我的配置图:

使用自己的账号有自己专属的阿里云镜像地址

docker的配置是通过json文件来配置的,这里配置镜像也需要通过json文件来配置

{"registry-mirrors": ["https://nubcahe0.mirror.aliyuncs.com"]
}

4. Docker镜像常用命令

列出镜像列表

docker images

搜索镜像

docker search redis

下载镜像

docker pull redis

查看镜像版本

docker search命令查找出是否有该镜像,不能找到该镜像支持的版本。

删除镜像

  • 指定名称删除镜像
# 删除latest
docker rmi redis# 删除指定tag
docker rmi redis:7
  • 指定IMAGE ID删除镜像
docker rmi 5d89766432d0

构建镜像

  • 从Dockerfile构建镜像
# -t 表示指定镜像仓库名称/镜像名称:镜像标签 .表示使用当前目录下的Dockerfile文件
docker build -t fire/fire-admin:1.0-SNAPSHOT .
# 查看刚构建的镜像
docker images
  • 从容器的修改构建镜像
# 从容器b9480afc7572构建镜像
docker commit b9480afc7572 myubuntu:1.0
# 查看刚构建的镜像
docker images

推送镜像

  • 推送到私有仓库
# 打私有标签
docker tag myubuntu:1.0 localhost:5000/myubuntu:1.0
# 推送
docker push localhost:5000/myubuntu:1.0
  • 推送到Docker Hub
# 登录Docker Hub
docker login
# 推送到远程仓库
docker push firefishdocker/fire-admin:1.0-SNAPSHOT
  • 从容器构建新镜像
docker commit b9480afc7572 myubuntu:1.0
  • 给新镜像打上私有仓库标签
docker tag myubuntu:1.0 localhost:5000/myubuntu:1.0
  • 推送之前查看有哪些镜像
curl http://localhost:5000/v2/_catalog
# {"repositories":[]}
  • 推送到私有仓库
# 打私有标签
docker tag myubuntu:1.0 localhost:5000/myubuntu:1.0
# 推送
docker push localhost:5000/myubuntu:1.0
  • 推送成功:

  • 推送之后查询有哪些镜像,以及tag列表
curl http://localhost:5000/v2/_catalog
# {"repositories":["myubuntu"]}curl http://localhost:5000/v2/myubuntu/tags/list
# {"name":"myubuntu","tags":["1.0"]}
  • 从私库拉取镜像
# 不要写成http://localhost:5000/myubuntu:1.0
docker pull localhost:5000/myubuntu:1.0

5. Docker容器常用命令

新建并启动容器

    docker run -p 6379:6379 --name redis \-e TZ="Asia/Shanghai" \-v /mydata/redis/data:/data \-d redis:7 redis-server --appendonly yes
  • -p:将宿主机和容器端口进行映射,格式为:宿主机端口:容器端口;(建议设置

宿主机端口用户可指定,容器端口是预定义的;

宿主机端口不能重复,容器端口可以重复;

设置后宿主机才能与容器连接

  • --name:指定容器名称,之后可以通过容器名称来操作容器;(强烈建议设置

设置名称便于后续的操作

  • -e:设置容器的环境变量,这里设置的是时区;
  • -v:将宿主机上的文件挂载到宿主机上,格式为:宿主机文件目录:容器文件目录;

这类需求通常是挂载配置文件目录挂载数据存储目录

  • -d:表示容器以后台方式运行。(建议设置

列出容器

  • 列出运行中的容器:
docker ps
  • 列出所有容器:
docker ps -a

停止容器

可以用容器名称或容器ID

注:体现了docker run时指定–name的重要性

# NAMES
docker stop redis# CONTAINER ID
docker stop c5f5d5125587

启动容器

启动之前创建过的容器

docker start redis

进入容器

进入容器的命令格式是:docker exec -it 容器 命令

# 进入redis容器的命令行操作中
docker exec -it 9e38ce427c61 redis-cli# 或者
docker exec -it redis /bin/bash# 或者
docker exec -it redis sh

删除容器(慎用)

删除容器会删除容器的所有数据,不可恢复,慎重使用

docker rm redis

查看日志状态

docker logs -f redis

文件复制

一般用来修改容器中的文件

# 格式是:docker cp 源文件 目标文件
# 容器 ---> 宿主机
docker cp redis:/data/dump.rdb dump.rdb
# 宿主机 ---> 容器
docker cp test.log redis:/data

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/189284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Spring MVC的前后端交互案例及应用分层的实现

目录 分析程序报错的步骤 案例 一.加法计算器 二.实现用户登录 1.登录接口 2.获取用户的登录信息 三.留言板 1.接口定义 2.完成后端代码 3.测试后端代码 四.图书管理系统 1.定义接口 2.后端代码 3.测试后端代码 4.前端交互代码 应用分层 1.三层架构 分析程序报…

QT Creator 保存(Ctrl+S)时,会将Tab制表符转换为空格

今天在写makefile文件时,发现QT Creator 保存(CtrlS)时,会将Tab制表符转换为空格,之前没有发现,略坑,官网上也有说明,点这里 简单来说,解决办法如下 依次点击:Tools ->Options-&g…

JPA数据源Oracle异常记录

代码执行异常 ObjectOptimisticLockingFailureException org.springframework.orm.ObjectOptimisticLockingFailureException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; nested exception is org.hibernate.StaleSta…

Linux 文件管理

内容概述 1 文件系统目录结构 存放的是内存中正在运行的系统状态信息,数据不在硬盘而是在内存中 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all1.1 文件系统的目录结构 Linux 操作系统 ext / xfs 文件系统是区分大小写,大小写敏感 Linux的文件…

MySQL导出ER图为图片或PDF

目录 1、Navicat 生成ER图 1、选择数据库,逆向数据库到模型 2、查看ER图 3、导出ER图 2、使用MySQL官方工具:MySQL Workbench 1、首先连接MySQL数据库 2、点击Database,选择Reverse Engineer 3、填写数据库信息,点Next …

【鸿蒙应用ArkTS开发系列】-自定义底部菜单列表弹窗

文章目录 前言创建Demo工程创建dialog 文件夹创建ListMenu 接口创建自定义弹窗 ListMenuDialog使用自定义弹窗 打包测试效果演示默认效果菜单带图标效果设置文本颜色效果不同文本颜色效果无标题效果 前言 上一篇文章中我们实现了选择图片、选择文件、拍照的功能 。 链接在这里…

每日一练2023.12.1——输出GPLT【PTA】

题目链接:L1-023 输出GPLT 题目要求: 给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写&#x…

对小程序的初了解

WXML和HTML的区别 标签名称不同 HTML&#xff1a;div、a、span、img WXML&#xff1a;view、text、image、navigator 属性节点不同 <a href"#">超链接</a> <navigator url"/pages/home/home"></navigator> 提供了类似vue的…

计算机视觉(OpenCV+TensorFlow)

计算机视觉&#xff08;OpenCVTensorFlow&#xff09; 文章目录 计算机视觉&#xff08;OpenCVTensorFlow&#xff09;前言7. 图像直方图绘制直方图绘制直方图有两种方式&#xff1a; 掩膜 8. 直方图均衡化直方图均衡化的介绍直方图均衡化的步骤自适应直方图均衡化 9. 图像转换…

SAP_ABAP_编程基础_数据集_创建并填充摘录数据集 / 处理摘录数据集

SAP ABAP 顾问&#xff08;开发工程师&#xff09;能力模型_Terry谈企业数字化的博客-CSDN博客文章浏览阅读494次。目标&#xff1a;基于对SAP abap 顾问能力模型的梳理&#xff0c;给一年左右经验的abaper 快速成长为三年经验提供超级燃料&#xff01;https://blog.csdn.net/j…

webshell之自建漏洞免杀

今天主要讲解&#xff0c;如何利用通用漏洞来进行命令执行&#xff0c;从而达到免杀效果 常规反序列化免杀 这种方式就相当于直接触发提供一个反序列化漏洞入口&#xff0c;但是能否被利用&#xff0c;还是在于服务端本身是否存在反序列化漏洞&#xff0c;下面给了一个例子&a…

基于机器学习的笔记本电脑导购系统

目 录 中英文摘要 第一章 概述 1 1.1 课题开发背景及意义 1 1.2 课题研究现状 2 1.3 课题主要研究内容 3 第二章 需求分析 4 2.1 功能需求分析 4 2.2 可行性分析 10 2.3 流程分析 11 2.4 数据流图 13 2.5 性能需求分析 15 第三章 开发技术及工具 16 3.1 系统开发模式技术 16 3…

《凤凰项目》读书笔记

文章目录 一、书名和作者二、书籍概览2.1 主要论点和结构2.2 目标读者和应用场景 三、核心观点与主题3.1 DevOps的核心原则与文化变革3.2 持续交付与自动化3.3 变更管理与风险控制3.4 关键绩效指标与持续改进 四、亮点与启发4.1 最有影响的观点4.2 对个人专业发展的启示 五、批…

【Linux--进程控制】

目录 一、进程等待1.1进程等待方法1.2获取子进程status 二、进程替换2.1单进程版本--最简单得程序替换2.2 进程替换得原理2.3 多进程版本--验证各种程序替换接口2.4 总结 一、进程等待 1.1进程等待方法 问题1&#xff1a;进程等待是什么&#xff1f; 通过系统调用wait/waitpi…

Java 定时任务

Java 定时任务 为什么需要定时任务&#xff1f; 我们来看一下几个非常常见的业务场景&#xff1a; 某系统凌晨 1 点要进行数据备份。某电商平台&#xff0c;用户下单半个小时未支付的情况下需要自动取消订单。某媒体聚合平台&#xff0c;每 10 分钟动态抓取某某网站的数据为…

五、关闭三台虚拟机的防火墙和Selinux

目录 1、关闭每台虚拟机的防火墙 2、关闭每台虚拟机的Selinux 2.1 什么是SELinux

使用SpringBoot和ZXing实现二维码生成与解析

一、ZXing简介 ZXing是一个开源的&#xff0c;用Java实现的多种格式的1D/2D条码图像处理库。它包含了用于解析多种格式的1D/2D条形码的工具类&#xff0c;目标是能够对QR编码&#xff0c;Data Matrix, UPC的1D条形码进行解码。在二维码编制上&#xff0c;ZXing巧妙地利用构成计…

系列十四、SpringBoot的jar包可以直接运行原理分析

一、普通jar包运行 vs SpringBoot jar包运行 1.1、普通jar包运行 general-test-1.0-SNAPSHOT.jar是位于D盘的一个普通的jar包&#xff0c;是idea中一个普通的maven项目通过package打包生成&#xff0c;为了方便测试我把它拷贝到D盘了。 java -jar general-test-1.0-SNAPSHOT.j…

springboot虚拟请求——测试

springboot虚拟请求 表现层测试 web环境模拟测试 虚拟请求状态匹配——执行状态的匹配 Testvoid testStatus(Autowired MockMvc mvc) throws Exception { // //http://localhost:8080/books// 创建一个虚拟请求&#xff0c;当前访问的是booksMockHttpServletRequestBui…

不会代码(零基础)学语音开发(学习工具)

学习&#xff0c;要选择适合自己的&#xff0c;好的学习工具至关重要。就像读书&#xff0c;要读好书一样。 自己不会选&#xff0c;可以参考前辈&#xff0c;找chatgpt等来帮忙。充分利用好周边的资源。 秉承着GPT和前辈们的经验之谈&#xff0c;开始选择语音开发产品&#…