《Docker快速入门:从0到1构建你的第一个容器!》
《Docker快速入门:从0到1构建你的第一个容器!》
前言
欢迎来到Docker的世界,一个让应用程序打包、部署和运行更加容易的神奇平台。Docker改变了我们对于应用开发和分发的看法,它通过容器技术让软件的携带和运行变得前所未有的轻量级和便捷。无论您是开发者、系统管理员还是IT专业人士,掌握Docker都将为您的技能集增添宝贵的一笔,并打开通往现代云计算和微服务架构的大门。
本文章将略去复杂理论,直接教学实操。我们会逐步指导您,即使您是Docker和容器技术的新手,也能在一分钟内搭建首个Docker容器。准备好笔和纸,让我们开始高效学习Docker的旅程!
实战
1.环境准备
#永久关闭防火墙
[root@qm ~]# systemctl disable firewalld
#永久关闭selinux
[root@qm ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
[root@qm ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
#开启路由转发(ipv4/ipv6)
[root@qm ~]# vim /etc/sysctl.conf
添加以下内容
net.ipv4.ip_forward =1
net.bridge.bridge-nf-call-iptables =1
net.bridge.bridge-nf-call-ip6tables =1
#立即生效配置
[root@qm ~]# sysctl -p
#查看路由转发是否开启 默认是0开启是1
[root@qm ~]# cat /proc/sys/net/ipv4/ip_forward
#重启生效配置
[root@qm ~]# reboot
#验证是否关闭
[root@qm ~]# getenforce && systemctl status firewalld
#清理docker环境
[root@qm ~]# yum -y remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
2.安装依赖软件
[root@qm ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
3.安装阿里云docker源
#下载阿里云docker源
[root@qm ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#清理并重新生成缓存
[root@qm ~]# yum clean all && yum makecache fast
#查看包数量 看看有没有多出来一个docker源
[root@qm ~]# yum repolist
4.安装docker
[root@qm ~]# yum -y install docker-ce doker-ce-cli containerd.io==5.system工具管理docker
[root@qm ~]# systemctl start docker
[root@qm ~]# systemctl enable docker
[root@qm ~]# systemctl restart docker
6.检查iptable规则:会多出很多docker相关规则
[root@qm ~]# iptables -nL
7.检查docker版本
[root@qm ~]# docker -v
[root@qm ~]# docker version
8.查看docker基本信息/运行状态
[root@qm ~]# docker infoPS:假如查看状态出现这个报错
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
#解决办法:
办法1:在centos7配置文件新增参数
[root@qm ~]# vim /etc/sysctl.conf
net.bridge.bridge-nf-call-iptables =1
net.bridge.bridge-nf-call-ip6tables =1
[root@qm ~]# sysctl -p
[root@qm ~]# systemctl restart docker办法2:Docker启动容器的时候指定参数
[root@qm ~]# docker run --sysctl net.bridge.bridge-nf-call-iptables=1 --sysctl net.bridge.bridge-nf-call-ip6tables=1 your_image#解析:这两个参数分别用于启用或禁用网络桥接的IPv4和IPv6防火墙调用
1.使用docker run命令启动一个新的容器。
2.通过--sysctl参数设置net.bridge.bridge-nf-call-iptables为1,表示启用IPv4防火墙调用。
3.通过--sysctl参数设置net.bridge.bridge-nf-call-ip6tables为1,表示启用IPv6防火墙调用。
4.最后指定要运行的Docker镜像名称(your_image替换成你的镜像名)
9.搜索镜像(这里搜索的centos7)
#从docker hub中搜索docker名为centos的镜像
[root@qm ~]# docker search centos:7
name:代表此镜像的名称
description:此镜像的描述
stars:下载次数
official:是否由官方提供(官方提供可放心下载,可以基于此镜像做自己的镜像)
10.配置镜像加速器(这里用的阿里云镜像加速器)
#登录阿里云控制台-->左侧容器镜像服务-->点击镜像工具-->点击镜像加速器--选择系统版本
阿里云镜像加速器直达网址:https://cr.console.aliyun.com
#建立一个.sh文件配置内容
[root@qm ~]# vim pz_docker.sh
#!/usr/sbin/bash
clear
echo "[1]开始建立docker加速器放置目录..."
mkdir -p /etc/docker
sleep 1
echo "[2]开始写入配置"
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://2zwkpj0m.mirror.aliyuncs.com"]
}
EOF
sleep 1
echo "[3]重新加载system工具"
systemctl daemon-reload
sleep 1
echo "[4]重新启动docker..."
systemctl restart docker
sleep 1
echo "[5]阿里云镜像加速器配置完毕!"
11.管理镜像(默认拉取最新版本 这里拉取的是centos7)
#拉取镜像
[root@qm ~]# docker pull centos:7
PS:如果这里报错,TLS handshake timeout,那就是网络原因导致超时,尝试多pull几次。
#删除镜像
[root@qm ~]# docker rmi -f 镜像ID
#查看centos版本
[root@qm ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
12.查看已下载镜像
[root@qm ~]# docker images
REPOSTORY代表:镜像名
tag代表:标签
image id代表:镜像ID
SIZE代表:大小 单位MB
13.拉取镜像方式
#1.虚拟机上传到docker 本地上传
[root@qm ~]# docker load -i /指定路径/包名.tar
#2.网络下载
[root@qm ~]# docker pull registry.cn-hangzhou.aliyuncs.com/centos
14.登录到docker—shell交互终端
#登录
[root@qm ~]# docker run -it centos:7 /bin/bash
#退出容器
[root@qm ~]# exit
15.docker hup使用
#注册docker hub账号
网址:https://hub.docker.com/
#登录
[root@qm ~]# docker login
#退出
[root@qm ~]# docker out
结尾
本次的学习就到这里,如果感觉麻烦可以看下一篇文章里面有一键部署docker的脚本,还会继续更新更多docker的知识,不妨点个关注跟作者一起继续学习,点赞关注转发感谢!
相关文章:
《Docker快速入门:从0到1构建你的第一个容器!》
《Docker快速入门:从0到1构建你的第一个容器!》 前言 欢迎来到Docker的世界,一个让应用程序打包、部署和运行更加容易的神奇平台。Docker改变了我们对于应用开发和分发的看法,它通过容器技术让软件的携带和运行变得前所未有的轻…...
NLP_Transformer架构
文章目录 Transformer架构剖析编码器-解码器架构各种注意力的应用Transformer中的自注意力Transformer中的多头自注意力Transformer中的编码器-解码器注意力Transformer中的注意力掩码和因果注意力 编码器的输入和位置编码编码器的内部结构编码器的输出和编码器-解码器的连接解…...
CVE-2012-2311 漏洞复现
CVE-2012-2311 这个漏洞被爆出来以后,PHP官方对其进行了修补,发布了新版本5.4.2及5.3.12,但这个修复是不完全的,可以被绕过,进而衍生出CVE-2012-2311漏洞。 PHP的修复方法是对-进行了检查: if(query_str…...
多线程面试题汇总
多线程面试题汇总 一、多线程1、线程的生命周期2、线程的创建(函数创建)3、线程的创建(使用类)4、守护线程 二、全局解释器锁1、使用单线程实现累加到5000000002、使用多线程实现累加到5000000003、总结 三、线程安全1、多线程之数…...
CentOS7.9+Kubernetes1.29.2+Docker25.0.3高可用集群二进制部署
CentOS7.9Kubernetes1.29.2Docker25.0.3高可用集群二进制部署 Kubernetes高可用集群(Kubernetes1.29.2Docker25.0.3)二进制部署二进制软件部署flannel v0.22.3网络,使用的etcd是版本3,与之前使用版本2不同。查看官方文档进行了解…...
STM32——OLED菜单(二级菜单)
文章目录 一.补充二. 二级菜单代码 简介:首先在我的51 I2C里面有OLED详细讲解,本期代码从51OLED基础上移植过来的,可以先看完那篇文章,在看这个,然后按键我是用的定时器扫描不会堵塞程序,可以翻开我的文章有单独的定时…...
配置Vite+React+TS项目
初始化 执行npm create vite并填写项目名、用那个框架。。 配置 路径别名 在vite.config.ts里面配置: import { defineConfig } from vite import react from vitejs/plugin-react import path from pathexport default defineConfig({plugins: [react()],reso…...
2.13:C语言测试题
21.(b) 6 22.(b) cd 23.b) 5 4 1 3 2 栈:先进后出 24. b,c,d:10,12,120 25.2,5 26.越界访问,可能正常输出,可能段错误 27. 0,41 28. a)11 b) 320 29. aab; ba-b; aa-b; 30. p150x801005; p250x810…...
ubuntu22.04 有一台机器说有4T硬盘,但是df的时候看不到,怎么查找
在 Ubuntu 22.04 上,如果你有一块硬盘在使用df命令时未显示,这通常意味着硬盘尚未被挂载或者根本未被分区和格式化。以下是一些步骤来帮助你识别和准备新硬盘: 1. 检查硬盘是否被系统识别 首先,使用lsblk命令来检查系统是否识别…...
【机器学习】数据清洗之识别重复点
🎈个人主页:甜美的江 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步…...
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavDestination组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之NavDestination组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、NavDestination组件 作为NavRouter组件的子组件,用于显示导…...
tokio tcp通信
引入crate tokio { version "1.35.1", features ["full"] } 服务端 use std::time::Duration; use tokio::{io::{AsyncBufReadExt, AsyncWriteExt},net::{tcp::{OwnedReadHalf, OwnedWriteHalf},TcpListener, TcpStream,},sync::mpsc, };#[tokio::ma…...
LCR 122. 路径加密【简单】
LCR 122. 路径加密 假定一段路径记作字符串 path,其中以 "." 作为分隔符。现需将路径加密,加密方法为将 path 中的分隔符替换为空格 " ",请返回加密后的字符串。 示例 1: 输入:path "a.ae…...
SpringUtils 工具类,方便在非spring管理环境中获取bean
应用场景: 1 可用在工具类中, 2 spring【Controller,service】环境中, 3 其中的一个方法getAopProxy可获得代理对象,需要将 EnableAspectJAutoProxy(exposeProxy true) 允许获取代理对象 import org.springframework.aop.framew…...
JavaWeb之请求
请求 客户端请求由ServletRequest类型的request对象表示,在HTTP请求场景下,容器提供的请求对象的具体类型为HttpServletRequest HTTP的请求消息分为三部分:请求行、请求头、请求正文。 请求行对应方法 // 获取请求行中的协议名和版本public S…...
VsCode中常用的正则表达式操作
在vscode中可以使用正则表达式来进行搜索内容,极大的方便了我们对大量数据中需要查看的信息进行筛选,使用正则搜索时点击 .* 此文章会持续补充常用的正则操作 1.光标选中搜索到的内容 将搜索的内容进行全选,举例:在如下文件中我需…...
ubuntu22.04@laptop OpenCV Get Started: 007_color_spaces
ubuntu22.04laptop OpenCV Get Started: 007_color_spaces 1. 源由2. 颜色空间2.1 RGB颜色空间2.2 LAB颜色空间2.3 YCrCb颜色空间2.4 HSV颜色空间 3 代码工程结构3.1 C应用Demo3.2 Python应用Demo 4. 重点分析4.1 interactive_color_detect4.2 interactive_color_segment4.3 da…...
mysql 查询性能优化关键点总结
MySQL查询性能优化是数据库管理的重要环节,良好的性能优化可以提高查询效率,降低系统负载。以下是一些关键点,用于优化MySQL查询性能: 1. 索引优化 索引是MySQL查询优化的重要手段,合理的索引可以大大…...
React - 分页插件默认是英文怎么办
英文组件的通用解决方案 这里以分页插件为例: 大家可以看到,最后的这个页面跳转提示文字为Go to,不是中文,而官网里面的案例则是: 解决方案: import { ConfigProvider } from antd; import zhCN from an…...
揭开Markdown的秘籍:引用|代码块|超链接
🌈个人主页:聆风吟 🔥系列专栏:Markdown指南、网络奇遇记 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. ⛳️Markdown 引用1.1 🔔引用1.2 🔔嵌套引用1.3 &…...
Mac Mouse Fix终极指南:让你的第三方鼠标在macOS上焕发新生
Mac Mouse Fix终极指南:让你的第三方鼠标在macOS上焕发新生 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 还在为macOS上第三方鼠标功能受限而…...
Android崩溃分析进阶:结合addr2line与IDA Pro精准定位SO文件崩溃点
1. 从崩溃日志到问题定位:为什么SO文件这么难缠? 每次看到Android应用崩溃日志里出现"signal 11 (SIGSEGV)"这种字样,我就知道今晚又要加班了。特别是当崩溃发生在SO文件中时,那种无力感就像在漆黑的房间里找一根掉落的…...
YOLOv12镜像实战:工业质检场景下的高精度缺陷识别方案
YOLOv12镜像实战:工业质检场景下的高精度缺陷识别方案 1. 工业质检的挑战与YOLOv12的机遇 在制造业数字化转型浪潮中,工业质检一直是自动化程度较低的环节。传统人工检测面临三大痛点: 效率瓶颈:熟练质检员每分钟最多检测20-30…...
AI头像生成器新手教程:5个常用风格关键词+3类背景模板Prompt速查表
AI头像生成器新手教程:5个常用风格关键词3类背景模板Prompt速查表 1. 快速了解AI头像生成器 AI头像生成器是一个帮你设计专属头像创意的智能工具。你只需要简单描述想要的头像风格,它就能生成详细的描述文案,这些文案可以直接用在Midjourne…...
不只是图表:用Three.js和Vue3打造一个可交互的3D热力图组件库(附完整源码)
不只是图表:用Three.js和Vue3打造一个可交互的3D热力图组件库 在数据可视化领域,3D热力图正逐渐成为展示高密度空间数据的首选方案。传统2D热力图虽然直观,但在表现复杂数据关系时往往力不从心。本文将带您从零开始构建一个生产级Vue3Three.j…...
比迪丽模型在数据库课程设计中的应用:ER图可视化增强
比迪丽模型在数据库课程设计中的应用:ER图可视化增强 1. 引言 数据库课程设计是计算机专业学生的必修实践环节,其中ER图(实体-关系图)的设计与呈现是核心难点。传统工具绘制的ER图往往显得枯燥抽象,学生难以直观理解…...
MusePublic显存利用率提升方案:CPU卸载+自动清理策略详解
MusePublic显存利用率提升方案:CPU卸载自动清理策略详解 1. 项目背景与显存挑战 MusePublic是一款专为艺术感时尚人像创作设计的轻量化文本生成图像系统。基于专属大模型和safetensors格式封装,系统针对艺术人像的优雅姿态、细腻光影和故事感画面进行了…...
Openclaw中文版快速上手:nanobot镜像支持Qwen3-4B本地部署与系统命令执行
Openclaw中文版快速上手:nanobot镜像支持Qwen3-4B本地部署与系统命令执行 1. 快速了解nanobot:你的轻量级AI助手 nanobot是一个超轻量级的个人人工智能助手,它基于OpenClaw的设计理念,但用更简洁的代码实现了核心功能。这个工具…...
水墨江南模型Python入门实践:第一个AI国画生成程序
水墨江南模型Python入门实践:第一个AI国画生成程序 你是不是也刷到过那些充满诗意的AI水墨画?烟雨朦胧的江南水乡,寥寥几笔勾勒出的远山,那种独特的意境让人过目不忘。你可能觉得,要做出这样的画,得是懂艺…...
TwinCAT界面美化指南:3步搞定背景主题切换(附最佳配色方案推荐)
TwinCAT界面美化实战:从主题定制到高效编程的视觉优化 每次打开TwinCAT开发环境,是否觉得默认的灰白色调让人昏昏欲睡?作为工业自动化领域的核心开发工具,TwinCAT的界面美学长期被工程师们忽视。实际上,一个精心调校的…...
