【Docker】Docker基础教程

news2025/1/11 0:20:47

🦖我是Sam9029,一个前端
🐱‍🐉🐱‍🐉恭喜你,若此文你认为写的不错,不要吝啬你的赞扬,求收藏,求评论,求一个大大的赞!👍

基础理解

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

安装操作

  • 系统:CentOS 7.6 64bit
  • install docs - docker 官方文档

1.卸载 系统默认的 残余

若有旧版本的docker,推荐先卸载掉

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2.配置docker 仓库 yum源

# 安装 yum 工具
sudo yum install -y yum-utils

# 安装成功 配置docker yum 源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 配置yun源加速 (推荐)
  • 让你的yum加速起来

3.安装docker

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

# 过程超慢 等了近一个小时
# 看的最后 输出 Complete! 就是成功

# 不想慢 可以换 yum 加速源

4.启动和校验

# 启动docker
sudo systemctl start docker

# 使用 docker 输入命令
sudo docker run hello-world

#执行docker ps命令,如果不报错,说明安装启动成功
docker ps

# 检查版本
docker -v

# 查看镜像
docker images

# 停止docker
sudo systemctl stop docker

5.设置 docker 开机自启动

sudo systemctl enable docker

# Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
# 输出上诉命令即为成功!

6.配置docker镜像加速

  • 类似 npm 源,
  • 这里和yum源加速不是一个东西,yum源加速是下载 docker 本身
  • 这里加速的 docker 本身软件 下载镜像时的加速

使用腾讯云 Docker 镜像源加速镜像下载

安装 Docker 软件后,您可以直接通过 docker pull 命令拉取镜像。如您未配置镜像加速源,直接拉取 DockerHub 中的镜像,通常下载速度会比较慢。
为此,我们推荐您使用腾讯云 Docker 镜像源加速镜像下载。不同操作系统的详细操作步骤略有区别,请使用对应的操作步骤进行配置。
适用于 Linux 操作系统实例:

1.1 执行以下命令,打开 /etc/docker/daemon.json 配置文件。

vim /etc/docker/daemon.json

1.2 按 i 切换至编辑模式,添加以下内容,并保存。

{
   "registry-mirrors": [
   "https://mirror.ccs.tencentyun.com"
  ]
}

1.3 执行以下命令,重启 Docker 即可。示例命令以 CentOS 7 为例。

sudo systemctl restart docker

基本命令

# 拉取镜像
docker pull <name>

# 查看镜像
docker images

# 删除镜像
docker rmi <name>

# 运行镜像
docker run [OPTIONS] IMAGE [COMMAND]
# [OPTIONS] 前置配置
# [COMMAND] 指令
# eg
docker run -d \
 -- name mysql \
 -p 3306:3306 \
 -e TZ=Asia/Shanghai \
 -e MYSQL_ROOT_PASSWORD=root \
 mysql/mysql-server

# -v 数据卷挂载 语法【 -v 宿主机:容器内 】宿主机的目录必须以 ./ 或 / 开头
docker run -d \
 -- name nginx \
 -p 80:80 \
 -v /path/path:/path/path
 nginx


# 查看容器
docker ps

#查看所有容器(包括已停止的容器)
docker ps -a 
# 状态为 "Exited",则表示容器已停止

# 启动容器&重新启动容器
docker start <容器ID或名称>
docker stop <容器ID或名称>

# 容器中执行命令
docker exec <容器名称或ID> ls #查看容器内文件
# eg 
# -it 表示 交互式终端 模式
docker exec -it <id&name> sh 
#退出时 输入 exit 并按回车键

# 移除容器 -- 移除前需要 停止容器
docker rm <容器ID或名称>

# 强制移除容器 (无论容器状态),强制删除正在运行的容器可能会导致数据丢失或应用程序错误,请确保不需要该容器后再删除
docker rm -f <容器ID或名称>

# 查看容器运行日志
docker logs <容器ID或名称> 

# 查看镜像软件的版本

# 查看配置信息
docker info

容器化 docker 安装 Mysql

执行命令 安装并运行 mysql

docker run -d \
 -- name mysql \
 -p 3306:3306 \
 -e TZ=Asia/Shanghai \
 -e MYSQL_ROOT_PASSWORD=root \
 mysql
#大概率直接报错,运行下面吧
# 上面实在无法执行的话执行下面
docker run -d \
  --name mysql \
  -p 3306:3306 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=root \
  mysql/mysql-server
  • 解释
这是一个使用Docker运行MySQL的命令。下面是对命令中各个参数的解释:

1. `docker run`:这是Docker命令,用于运行一个Docker容器。 -d 是让容器在后台运行

2. `--name mysql`:为Docker容器指定一个名称,这里设置为`mysql`。

3. `-p 3306:3306`:将主机的3306端口映射到容器的3306端口。这意味着你可以在主机上通过3306端口访问MySQL服务。

4. `-e TZ=Asia/Shanghai`:设置容器的时区为Asia/Shanghai。这将影响容器内应用程序的时间和日期处理。

5. `-e MYSQL_ROOT_PASSWORD=root`:设置MySQL的root用户的密码为`root`。这将允许你使用此密码登录MySQL。

6. `mysql`:这是要运行的Docker镜像名称。Docker将从Docker Hub下载名为`mysql`的镜像,并根据上述参数运行一个MySQL容器。

总之,这个命令将下载并运行一个名为`mysql`的Docker容器,映射主机的3306端口到容器的3306端口,设置时区为Asia/Shanghai,并将root用户的密码设置为`root`。在容器运行后,你可以使用`mysql`命令行客户端或其他MySQL客户端工具连接到这个MySQL实例。

解决报错 Error response from daemon

docker: Error response from daemon: pull access denied for name, repository does not exist or may require 'docker login':

注册&登录 dockerhub

  • 使用命令
docker login
# 之后输入 dockerhub 注册的用户名和密码
# 输出 Login Succeeded 即可

# 容器化 docker 安装 nginx的过程

# 在 docker hub 中搜索 nginx 镜像
# 拉取 nginx 镜像
# 查看本地镜像
# 创建并运行nginx容器
# 查看容器
# 停止容器
# 启动容器
# 进入容器执行命令
# 删除容器

# 记得使用 docker login 检查登录 
docker pull nginx
docker images
docker run -d \
 -- name ngnix \
 -p 80:80 \
 nginx
docker ls #  docker ls -a
docker stop <id>
docker start <id>
docker exec <id> ls #exit 退出
docker rm <id>

数据卷

数据卷volume是一个虚拟目录,是容器内目录宿主机目录之间的影射桥梁

目标:便于操作容器内文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

基本使用命令:

# 创建数据卷
docker volume create <name>
  
# 查看
docker volume ls <name>
  
# 查看某个数据卷详情
docker volume inspect <name>
  
# 删除
docker volume rm <name>
  
# 清空数据卷
docker volume prune
  
  

常用镜像容器数据卷目录

# nginx
/usr/share/nginx/html

# mysql 


🦖我是Sam9029,一个前端

文章若有错误,敬请指正🙏

🐱‍🐉🐱‍🐉恭喜你,都看到这了,求收藏,求评论,求一个大大的赞👍!不过分吧

Sam9029的博客_CSDN博客-JS学习,CSS学习,Vue-2领域博主

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

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

相关文章

Unity中URP下的SimpleLit顶点着色器

文章目录 前言顶点着色器1、GPU Instance 相关2、顶点输入数据相关3、雾效混合因子4、对 uv 进行 Tilling 和 Offset 的应用 及 把顶点的坐标信息传给输出结构体5、把法线相关的结果&#xff0c;传给输出结构体6、光照贴图相关7、额外灯相关计算8、阴影相关 前言 在上一篇文章…

Vue项目中如何解决跨域详解

文章目录 一、跨域是什么二、如何解决CORSProxy方案一方案二方案三 一、跨域是什么 跨域本质是浏览器基于同源策略的一种安全手段 同源策略&#xff08;Sameoriginpolicy&#xff09;&#xff0c;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能 所谓同源&#x…

easyMarkets易信是一家靠谱的外汇平台吗 ?FX110汇评

今天小编就带大家全面了解一下老牌优质交易商easyMarkets 易信。在FX110网首页搜索“easyMarkets 易信”进入交易商详情页。 查看FX110官网的交易商详细数据可以发现&#xff0c;easyMarkets 易信在FX110上的交易商评分为83.8分&#xff0c;牌照评级AA级&#xff0c;口碑打分4.…

基于YOLOv7的学生课堂行为检测,引入BRA注意力和多种IoU改进提升检测能力

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文摘要&#xff1a;介绍了学生课堂行为检测&#xff0c;并使用YOLOv7进行训练模型&#xff0c;以及引入BRA注意力和多种IoU改进来提升检测能力 目录 1.SCB介绍 ​编辑 2.如何提高YOLOv7课堂行为检测能力 2.1 训练基于YOLOv7模型的…

【数据库原理】(27)数据库恢复

在数据库系统中&#xff0c;恢复是指在发生某种故障导致数据库数据不再正确时&#xff0c;将数据库恢复到已知正确的某一状态的过程。数据库故障可能由多种原因引起&#xff0c;包括硬件故障、软件错误、操作员失误以及恶意破坏。为了确保数据库的安全性和完整性&#xff0c;数…

类和对象特性

#include<iostream> #include<string> using namespace std; class peron{ public:peron(string person){cout << "peron调用构造函数" << endl;tperson person;}~peron(){cout << "peron调用析构函数" << endl;}//手…

【书生·浦语】大模型实战营——第五次课程作业

基础作业——使用LMDeploy 以本地对话、网页Gradio、API服务中的一种方式部署InternLM-Chat-7B模型&#xff0c;生成300字的小故事 环境准备 除了安装所需依赖之后&#xff0c;重要的是进行模型转化&#xff08;转换成TurboMind格式&#xff09;&#xff0c;这里需要注意转化命…

连接器应用案例详解 | prodesign加速卡采用Samtec NovaRay® 极高密度阵列

【摘要/前言】 ChatGPT最近受到的欢迎和关注凸显了人工智能在影响日常生活方面所取得的进展。 有谁曾使用 ChatGPT 完成家庭作业或撰写博客&#xff1f;提前申明&#xff1a;这一篇文章绝对是真人撰写~ 无论如何&#xff0c;像ChatGPT这样的聊天机器人和类似服务的支柱都是高…

如何更改路由器Wi-Fi密码,这里提供通用步骤

这篇文章解释了如何通过路由器的设置更改Wi-Fi密码&#xff0c;即使你不知道当前的密码。 如何更改你的Wi-Fi密码 该过程按照以下一般步骤展开。 ​重要&#xff1a;这些是更改Wi-Fi密码的通用说明。更改路由器设置所需的步骤因不同制造商的路由器而异&#xff0c;甚至可能在…

使用Python编写一个渗透测试探测工具

本篇将会涉及&#xff1a; 资源探测一个有用的字典资源第一个暴力探测器 资源探测 资源探测在渗透测试中还是属于资源的映射和信息的收集阶段。 主要有以下三个类型&#xff1a; 字典攻击暴力破解模糊测试 字典攻击&#xff0c;在破解密码或密钥的时候&#xff0c;通过自定…

Ubuntu 20.04扩容磁盘命令:Ubuntu 20.04扩容系统主分区教程(PV VG LV)

前置知识&#xff1a; 磁盘 最基础的存在&#xff0c;物理磁盘 pv 物理卷&#xff08;同一磁盘 可以划分多个物理卷&#xff09; vg 卷组 &#xff08;一个到多个pv可组成一个卷组&#xff09; lv 逻辑卷 &#xff08;卷组可以划分为多个逻辑卷&#xff09;Ubuntu20.4扩容磁…

ZooKeeper 实战(三) SpringBoot整合Curator-开发使用篇

文章目录 ZooKeeper 实战(三) SpringBoot整合Curator-开发使用篇0. ZooKeeper客户端 1. Curator1.1. 简介1.2. 应用场景1.3. 优势1.4. 依赖说明 2. 依赖导入3. 配置类3.1. 重试策略3.2. 实现代码3.3. 总结 4. Curator中的基本API4.1. 创建节点CreateMode中的节点类型4.2. 查询节…

【RT-DETR改进涨点】MPDIoU、InnerMPDIoU损失函数中的No.1(包含二次创新)

前言 大家好&#xff0c;我是Snu77&#xff0c;这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进&#xff0c;内容持续更新&#xff0c;每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本&#xff0c;同时修改内容也支持Re…

【51单片机系列】proteus仿真单片机的串口通信

本文参考&#xff1a;https://zhuanlan.zhihu.com/p/425809292。 在proteus之外使用串口软件和单片机通信。通过在proteus设计一个单片机接收PC发送的数据&#xff0c;并将接收的数据发送出去&#xff0c;利用软件【Configure Virtual Serial Port Driver】创建一对虚拟串口&am…

户外LED大屏幕维护就该这样做!

户外LED大屏幕的保养和维护至关重要&#xff0c;正确的操作和定期的维护可以有效延长屏幕的寿命&#xff0c;提升观看效果。以下是一些建议&#xff0c;帮助您更好地保护户外LED大屏幕&#xff1a; 保持干燥环境&#xff1a; 确保户外LED大屏幕处于干燥的环境中。屏体内禁止进水…

Linux下文件的创建写入读取编程

在linux下操作一个文件&#xff0c;首先要保证文件的存在&#xff08;不存在就创建&#xff09;&#xff0c;接着打开文件&#xff08;打开成功&#xff09;并得到文件描述符&#xff0c;接着在进行读写操作&#xff0c;最后还需要关闭文件。如果我们对文件进行读写之后不关闭文…

Python 网络编程之粘包问题

【一】粘包问题介绍 【1】粘包和半包 粘包&#xff1a; 定义&#xff1a; 粘包指的是发送方发送的若干个小数据包被接收方一次性接收&#xff0c;形成一个大的数据包。原因&#xff1a; 通常是因为网络底层对数据传输的优化&#xff0c;将多个小数据包组合成一个大的数据块一次…

Python综合数据分析_RFM用户分组模型

文章目录 1.导入数据2.月度订单数据可视化3.数据清洗4.特征工程5.构建User用户表6.求R值7.求F值8.求M值9.显示R、F、M值的分布情况10.显示手肘图辅助确定K值11.创建和训练模型12.给R值聚类13.给聚类后的层级排序14.继续给F、M值聚类&#xff0c;并排序15.为用户整体分组画像 1.…

vue-quill-editor富文本插入图片改为上传服务器

1.安装vue-quill-editor npm install vue-quill-editor 2.安装依赖 npm install quill 3.代码引用 import { quillEditor } from vue-quill-editor; // 引入Qill插件 import Quill from quill; import quill/dist/quill.core.css; // import styles import quill/dist/quill.s…

Java热插拔技术之SPI

文章目录 背景SPI是什么SPI和API的区别Java SPI实践出真知总结 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 背景 最近&#xff0c;公司需要针对一个使用C#的系统以插件的形式进行二…