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.hqwc.cn/news/238301.html

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

相关文章

蓝桥杯day03——二进制间距

1.题目 给定一个正整数 n,找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 。如果不存在两个相邻的 1,返回 0 。 如果只有 0 将两个 1 分隔开(可能不存在 0 ),则认为这两个 1 彼此 相邻 。两个 1 之间的距离…

第十节HarmonyOS 常用基础组件-Image

一、组件介绍 组件(Component)是界面搭建与显示的最小单位,HarmonyOS ArkUI声名式为开发者提供了丰富多样的UI组件,我们可以使用这些组件轻松的编写出更加丰富、漂亮的界面。 组件根据功能可以分为以下五大类:基础组件…

【Android】MotionLayout实现动画

MotionLayout不断地更新,文章并不适用全部最近的更新内容。 文章目录 引入 ConstraintSetTransitionManager和MotionLayout有什么区别? 使用ConstrainSet(属性类似于ConstrainLayout) Transition属性OnClickOnSwipeKeyFrameSetKeyPositionKeyAttribute C…

Java零基础——vue篇

1.【熟悉】Vue简介 1.1 简介 它是一个构建用户界面的框架 Vue是一个前端框架 js jq https://www.pmdaniu.com/#file UI网站 UI 一般开发者使用蓝湖 工具 看着UI图 写接口 https://lanhuapp.com/web/#/item 是一个轻量级的MVVM(Model-View-ViewModel&#xff0…

力扣15题 三数之和 双指针算法

15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三…

Flask 构建高效的 Python Web 应用详解

概要 Flask 是一个用 Python 编写的轻量级 Web 应用框架。它的设计哲学是“简单优雅”,但它的灵活性和可扩展性使其成为构建复杂应用的理想选择。本文旨在深入探讨 Flask 的架构和核心组件,通过详细的示例和实践指南,为开发者提供构建高效、…

rust持续学习 COW

COW我第一次看见还以为是奶牛 很奇怪是个啥 后来了解到是clone on write 缩写的,大乌龙啊 这个有两种enum,一种是borrow,一种是own rust中,数据读写经常涉及到所有权 这个borrow,很显然,就是不可变借用了 own就是可以写…

【渗透】记录阿里云CentOS被渗透攻击

文章目录 发现排查安装Nethogs查询情况 最终方案 发现 流量异常,出现大流量,网络贷带宽占满情况 排查 安装Nethogs 1.1 Nethogs介绍 NetHogs是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统…

MySQL 基础、进阶、运维的学习笔记

1. MySQL 基础篇 1.1 MySQL 概述 1.1.1 数据库相关概念 数据库(Database, 简称 DB): 存储数据的仓库,数据是有组织的进行存储。 数据库管理系统(Database Management System, 简称 DBMS): 操作和管理数据库的大型软件。 SQL(Structured Query Language, 简称 S…

linux 内核工作队列技术原理

首先介绍一下工作队列使用的术语。 work:工作,也称为工作项。work queue:工作队列,就是工作的集合, work queue 和 work 是一对多的关系。worker: 工人, 一个工人对应一个内核线程,…

在re:Invent上IBM宣布与亚马逊云科技携手,Amazon RDS for DB2正式亮相

11月29日,IBM在亚马逊云科技re:Invent 2023上宣布,与亚马逊云科技合作推出Amazon Relational Database Service(Amazon RDS)for Db2。这项全新的完全托管云服务旨在简化客户在混合云环境中管理人工智能(AI)…

AH8691是一款80V转3.3V降压芯片

80V转3.3V降压芯片AH8691:宽电压输入范围,高效稳定,多领域应用 在当今电源管理领域,高效、稳定的降压芯片已成为各类设备的关键需求。本文将为您介绍一款80V转3.3V降压芯片AH8691,其具备宽电压输入范围、迟滞控制、高…