Docker基础篇——最全讲解

文章目录

  • 一、CentOS安装docker
  • 二、启动帮助类命令
  • 三、镜像命令
    • 1.名词概念
    • 2.常用命令
      • 2.1 镜像命令
      • 2.2 容器命令
        • 2.2.1:常用参数
        • 2.2.2:常用指令
      • 2.3 安装单机mysql、redis

一、CentOS安装docker

docker官网
1)yum安装gcc相关:

yum -y install gcc
yum -y install gcc-c++

2)安装软件包:

yum install -y yum-utils
	yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3)更新yum软件包索引:

yum makecache fast

4)安装Docker CE:

yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5) 启动docker:

systemctl start docker

6) 阿里云镜像加速器配置:
在这里插入图片描述
在这里插入图片描述

二、启动帮助类命令

  • 启动docker:systemctl start docker
  • 停止docker:systemctl stop docker
  • 重启docker:systemctl restart docker
  • 查看docker状态:systemctl status docker
  • 开机启动:systemctl enable docker
  • 查看docker概要信息:docker info
  • 查看docker总体帮助文档:docker --help
  • 查看docker命令帮助文档:docker具体命令 --help

三、镜像命令

1.名词概念

  • REPOSITORY:表示镜像的仓库源
  • TAG:镜像的标签版本号
  • IMAGE ID:镜像ID
  • CREATED:镜像创建的时间
  • SIZE:镜像大小

2.常用命令

2.1 镜像命令

  • 列出本地所有镜像:
docker images
REPOSITORY   TAG           IMAGE ID       CREATED         SIZE
redis        6.2.11        6fce9af058e8   2 weeks ago     113MB
mysql        8.0           3218b38490ce   15 months ago   516MB
registry     latest        b8604a3fe854   16 months ago   26.2MB
ubuntu       latest        ba6acccedd29   17 months ago   72.8MB
tomcat       8.0.15-jre7   8384f49437b3   8 years ago     355MB

  • 只显示镜像ID:
docker images -q

6fce9af058e8
3218b38490ce
b8604a3fe854
ba6acccedd29
8384f49437b3
  • 在远程库搜索镜像:docker search 镜像名称
docker search redis
NAME                                DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
redis                               Redis is an open source key-value store that…   11926     [OK]
redislabs/redisearch                Redis With the RedisSearch module pre-loaded…   56
redislabs/redisinsight              RedisInsight - The GUI for Redis                81
redislabs/rebloom                   A probablistic datatypes module for Redis       22                   [OK]
redislabs/redis                     Clustered in-memory database engine compatib…   36
redislabs/rejson                    RedisJSON - Enhanced JSON data type processi…   53
redislabs/redisgraph                A graph database module for Redis               26                   [OK]
redislabs/redismod                  An automated build of redismod - latest Redi…   33                   [OK]
redis/redis-stack                   redis-stack installs a Redis server with add…   41
redislabs/redistimeseries           A time series database module for Redis         12
redis/redis-stack-server            redis-stack-server installs a Redis server w…   21

  • 拉取镜像:docker pull 镜像名称
docker pull redis:6.0
  • 在远程库查询前n条镜像:docker search --limit n 镜像名称
docker search --limit 5 redis
  • 删除镜像:docker rmi 镜像名称(镜像ID)
docker rmi redis:6.0
docker rmi 6fce9af058e8
  • 强制删除镜像:docker rmi -f 镜像ID
docker rmi -f 6fce9af058e8
  • 删除全部镜像(慎重):docker rmi -f $(docker images -qa)
docker rmi -f $(docker images -qa)

docker虚悬镜像:仓库名、标签都是none的镜像,俗称虚悬镜像dangling inamge

2.2 容器命令

2.2.1:常用参数

–name=“容器新名字” 为容器指定一个名称
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
-i: 以交互模式运行容器,通常与-t同时使用
-t: 为容器重新分配一个伪输入终端,通常与-i同时使用
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p
退出 exit

2.2.2:常用指令

  • 新建并启动容器:
交互式容器:
docker run -it --name=myu1 ubuntu  /bin/bash
守护式容器:
docker run -d redis
  • 列出当前所有正在运行的容器:
docker ps
  • 退出容器:
exit
ctrl+p+q
两者区别:exit容器停止,ctrl+p+q容器不停止
  • 启动已经停止的容器:docker start 容器ID或容器名
docker start redis
  • 重启容器:docker restart 容器ID或容器名
docker restart redis
  • 停止容器:
docker stop redis
  • 强制停止容器:
docker kill redis
  • 删除已经停止的容器:docker rm 容器ID或容器名
docker rm redis
  • 查看容器日志:docker logs 容器ID
docker logs c632a8676b73 
  • 查看容器内运行进程:docker top 容器ID
docker top c632a8676b73
  • 查看容器内部细节:docker inspect 容器ID
docker inspect c632a8676b73
  • 进入正在运行的容器并以命令行交互:
docker exec -it c632a8676b73 /bin/bash
docker attach c632a8676b73
两者区别:attach直接进入容器启动命令终端,不会启动新的进程,用exit退出,会导致容器停止。 exec是在容器中打开新的终端,并且可以启动新的进程,用exit退出,不会导致容器停止
  • 从容器内拷贝文件到主机上:docker cp 容器ID:容器内路径 目的主机路径
docker cp f400fb93b8da:/tmp/a.txt /root
  • 导入和导出容器:
docker export 容器ID > name.tar
cat name.tar | docker import - 镜像用户/镜像名:镜像版本号
  • 搭建docker本地库
docker pull registry
vim /etc/docker/daemon.json

{ 
  "insecure-registries": ["192.168.80.10:5000"], #添加此段,“,”不可少,ip是本机IP地址
  "registry-mirrors": ["https://ox6a5bka.mirror.aliyuncs.com"]
}

systemctl daemon-reload
systemctl restart docker.service
docker create -it registry /bin/bash
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
'//-p指定端口,一内一外;-v表示挂载,前者是宿主机,后者是容器'
 
  • commit命令生成新的镜像:
docker commit -m="安装了vim" -a="zhang" f400fb93b8da vimubuntu
  • 将镜像推到本地库:
curl -XGET http://xxx.xxx.xx.xx:5000/v2/_catalog
docker pull xxx.xxx.xx.xx:5000/ipconfigubuntu:1.2
  • 容器数据卷:
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it --privileged=true -v /www/local_data:/tmp/docker_data:rw(ro) --name=u1 ubuntu  读写或只读

2.3 安装单机mysql、redis

docker pull mysql:8.0
docker run -d -p 3306:3306 --privileged=true -v /www/mysql/log:/var/log/mysql -v /www/mysql/data:/var/lib/mysql -v /www/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=Zhang0727 --name mysql8 mysql:8.0.15
docker pull redis:6.0
docker run -p 6379:6379 --name=redis6 --privileged=true -v /www/redis/redis.conf:/etc/redis/redis.conf -v /www/redis/data:/data -d redis:6.2.11 redis-server /etc/redis/redis.conf

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Spring从成神到升仙系列 五】从根上剖析 Spring 循环依赖

👏作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主📕系列专栏:Java设计模式、数据结构和算法、Kafka从入门到成神、Kafka从成神到升仙…

经典七大比较排序算法 ·上

经典七大比较排序算法 上1 选择排序1.1 算法思想1.2 代码实现1.3 选择排序特性2 冒泡排序2.1 算法思想2.2 代码实现2.3 冒泡排序特性3 堆排序3.1 堆排序特性:4 快速排序4.1 算法思想4.2 代码实现4.3 快速排序特性5 归并排序5.1 算法思想5.2 代码实现5.3 归并排序特性…

QT的使用3:鼠标事件

鼠标事件0 事件1 需求2 查看控件的事件处理函数3 UI设计4 新建一个类,继承QLabel5 对已有对象进行类型提升6 重写事件处理函数7 项目进一步拓展(1)获取鼠标按键(2)鼠标移动(3)显示多个按键&…

【数据结构】Java实现栈

目录 1. 概念 2. 栈的使用 3. 自己动手实现栈(使用动态数组实现栈) 1. 创建一个MyStack类 2. push入栈 3. pop出栈 4. 查看栈顶元素 5. 判断栈是否为空与获取栈长 6. toString方法 4. 整体实现 4.1 MyStack类 4.2 Test类 4.3 测试结果 1.…

计算机网络笔记——物理层

计算机网络笔记——物理层2. 物理层2.1 通信基础2.1.1 信号2.1.2 信源、信道及信宿2.1.3 速率、波特及码元2.1.4 带宽2.1.5 奈奎斯特定理采样定理奈奎斯特定理2.1.6 香农定理2.1.7 编码与调制调制数字信号调制为模拟信号模拟数据调制为模拟信号编码数字数据编码为数字信号模拟数…

C#中WPF实现依赖注入和MVVM,以及服务定位ServiceLocator

最近在想重写架构于是就研究了一套WPF的相关内容,WPF不像MAUI内置了容器,需要我们自己手动添加,于是就有了今天的内容。 首先,我们新建一个.net6.0的WPF项目 由于WPF没有内置容器,我们先安装一下依赖注入的nuget包 Microsoft.Ex…

网络技术与应用概论(上)——“计算机网络”

各位CSDN的uu们你们好呀,今天,小雅兰的内容依旧是计算机网络的一些知识点噢,下面,让我们进入计算机网络的世界吧 网络内涵 网络特征 网络定义 互联网发展过程 从ARPA网络到Internet 从低速互联网到高速互联网 从数据结构到统一网…

【C语言】通讯录的实现(静态版)

【C语言】通讯录的实现(静态版一.前言1.前期准备a.菜单实现b.联系人结构体的构建c.菜单选项的功能d.#define 的定义2.功能的实现a.初始化通讯录b.增加联系人c.显示通讯录d.查找联系人e.修改联系人d.删除联系人3. 总代码test.ccontact.ccontact.h一.前言 本文将会用c语言实现一…

Golang每日一练(leetDay0013)

目录 37. 解数独 Sudoku Solver 🌟🌟🌟 38. 外观数列 Count and Say 🌟🌟 39. 组合总和 Combination Sum 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Py…

大数据技术之Hive

第1章Hive基本概念1.1 Hive1.1.1 Hive的产生背景在那一年的大数据开源社区,我们有了HDFS来存储海量数据、MapReduce来对海量数据进行分布式并行计算、Yarn来实现资源管理和作业调度。但是面对海量数据和负责的业务逻辑,开发人员要编写MR来对数据进行统计…

【Go】K8s 管理系统项目[Jenkins Pipeline K8s环境–应用部署]

K8s 管理系统项目[Jenkins Pipeline K8s环境–应用部署] 1. k8s-plantform-api-Pipeline 考虑到实际工作中前后端可能是不同的同学完成,一般Api部分完成后改动会比较小,web部分改动会比较频繁.于是将api和web分了2个pipeline实现 1.1 GIt仓库 docker目录存放镜像构建相关文件…

简介虚拟地址空间:保障进程间独立性的机制

我们知道,进程之间是相互独立的,在操作系统级别中,一个进程所执行的程序无法直接访问另一个进程所执行的内存区域(即实现进程间通信比较困难);一个进程运行的失败也不会影响其它进程的运行。这使我们的操作…

vue编程方法

1,app.vue 其中的moundted只是被执行一次。 系统中所有的组件都放到app。vue文件中。放到根组件中的只是被执行一次的代码可以放到main.js中码? 不可以,因为main文件只是一个js文件不是一个组件。组件中的一些属性不能被使用。比如&#xff…

VS Code上搭建Vue开发环境超详细教程

这篇关于在Visual Studio Code上搭建vue开发环境的超详细教程手把手教会你! 首先在Visual Studio Code上搭建vue开发环境有几个步骤: 1、下载安装node.js 2、安装npm 3、安装cnpm 4、安装vue/cli脚手架 5、创建vue项目 6、运行vue项目 1.下载安装node.js 地址&…

鸟哥的Linux私房菜 正则表示法与文件格式化处理

第十一章、正则表示法与文件格式化处理 https://linux.vbird.org/linux_basic/centos7/0330regularex.php 简体版 http://cn.linux.vbird.org/linux_basic/0330regularex.php 11.2.2 grep的一些高级选项 例题一、搜索特定字符串 例题二、利用中括号 [] 来搜寻集合字符 例题四…

8个python自动化脚本提高打工人幸福感~比心~

人生苦短,我用Python 最近有许多打工人都找我说打工好难 每天都是执行许多重复的任务, 例如阅读新闻、发邮件、查看天气、打开书签、清理文件夹等等, 使用自动化脚本,就无需手动一次又一次地完成这些任务, 非常方便…

蓝桥杯嵌入式RTC实时时钟

文章目录 前言一、RTC是什么二、cubemx的配置三、函数的使用总结前言 本篇文章将给大家介绍RTC实时时钟。 一、RTC是什么 STM32的实时时钟RTC是一个独立的定时器,RTC时钟内部依靠BCD码计数。RTC实时时钟提高时钟、闹钟、日历功能。RTC功耗较低,可以使用在低功耗设备上。 …

Redis为什么选择单线程?Redis为什么这么快?

目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程?三、Redis6.0引入多线程四、Redis主线程和IO线程是如何完成请求的?1、服务端和客户端建立socket连接2、IO线程读取并解析请求3、主线程执行请求命令4、IO线程会写回socket和主线程清…

DM8:LINUX环境安装DM8数据库安装条件--GLIBC版本要求

DM8:LINUX环境安装DM8数据库安装条件--GLIBC版本要求环境介绍1 检查 GLIBC 版本号2 /tmp 临时目录空间要等于或大于2GB3 报错截图3.1 导入授权报错3.2 设置时区报错3.3 DmAPService启动失败3.4 初始化实例报错4 更多达梦数据库使用经验环境介绍 在LINUX环境安装达梦…

一线大厂软件测试常见面试题1500问,背完直接拿捏面试官,

三、测试理论 3.1 你们原来项目的测试流程是怎么样的? 我们的测试流程主要有三个阶段:需求了解分析、测试准备、测试执行。 1、需求了解分析阶段 我们的SE会把需求文档给我们自己先去了解一到两天这样,之后我们会有一个需求澄清会议, 我…