当前位置: 首页 > news >正文

docker实战命令大全

文章目录

  • 1 环境准备
    • 1.1 移除旧版本Docker
    • 1.2安装工具包
    • 1.3配置docker yum源
  • 2 安装最新docker
    • 2.1 设置开机自启docker
    • 2.2配置加速器
  • 3 实操-镜像
    • 3.1搜索镜像
    • 3.2下载镜像
    • 3.3查看镜像
    • 3.4 删除镜像
  • 4 实操-容器
    • 4.1运行nginx容器
    • 4.2 查看容器
    • 4.3启动容器
    • 4.5关闭容器
    • 4.6查看容器日志
    • 4.7删除容器
    • 4.8让公网可以访问到nginx
    • 4.9进入容器内部
  • 5实操-保存镜像
    • 5.1 提交镜像
    • 5.2 保存镜像
    • 5.3加载别人的镜像

1 环境准备

1.1 移除旧版本Docker

[root@root ~]# sudo yum remove docker \
>                   docker-client \
>                   docker-client-latest \
>                   docker-common \
>                   docker-latest \
>                   docker-latest-logrotate \
>                   docker-logrotate \
>                   docker-engine
已加载插件:fastestmirror
参数 docker 没有匹配
参数 docker-client 没有匹配
参数 docker-client-latest 没有匹配
参数 docker-common 没有匹配
参数 docker-latest 没有匹配
参数 docker-latest-logrotate 没有匹配
参数 docker-logrotate 没有匹配
参数 docker-engine 没有匹配
不删除任何软件包
[root@root ~]# 

1.2安装工具包

[root@root ~]# sudo yum install -y yum-utils

1.3配置docker yum源

[root@root ~]# sudo yum-config-manager \
> --add-repo \
> http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2 安装最新docker

[root@root ~]# sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2.1 设置开机自启docker

[root@root ~]# docker ps  检查docker
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@root ~]# systemctl start docker 开启docker
[root@root ~]# docker ps 说明docker安装成功
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@root ~]# systemctl enable docker 设置开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@root ~]# 

2.2配置加速器

[root@root ~]# # 配置加速
[root@root ~]# sudo mkdir -p /etc/docker
[root@root ~]# sudo tee /etc/docker/daemon.json <<-'EOF'
> {
>   "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
> }
> EOF
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
[root@root ~]# sudo systemctl daemon-reload
[root@root ~]# sudo systemctl restart docker

3 实操-镜像

3.1搜索镜像

[root@root ~]# docker search nginx

在这里插入图片描述

3.2下载镜像

下载最新版本的镜像

[root@root ~]# docker pull  nginx 

官网: https://hub.docker.com/
查看版本号,指定版本下载镜像
下载指定版本的镜像

[root@root ~]# docker pull nginx:1.26.0

3.3查看镜像

[root@root ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    4f67c83422ec   5 days ago    188MB
nginx        1.26.0    94543a6c1aef   4 weeks ago   188MB
[root@root ~]# 

在这里插入图片描述

3.4 删除镜像

[root@root ~]# docker rmi nginx:1.26.0

或者

[root@root ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    4f67c83422ec   5 days ago    188MB
nginx        1.26.0    94543a6c1aef   4 weeks ago   188MB
[root@root ~]# docker rmi 4f67c83422ec
Untagged: nginx:latest
Untagged: nginx@sha256:0f04e4f646a3f14bf31d8bc8d885b6c951fdcf42589d06845f64d18aec6a3c4d
Deleted: sha256:4f67c83422ec747235357c04556616234e66fc3fa39cb4f40b2d4441ddd8f100
Deleted: sha256:61eeae0da48f3cc48ebf1d0a192ad8f19cb6c6ed67d0f0a7ef1f1c443c1effd7
Deleted: sha256:5cde5b697c8179331355ba55c3754bb565e74b9c84170f398a736e29e8ece1f8
Deleted: sha256:8f957df28f8990c12af00f83cbc17560d57284835f695e3b1c2a39d22f6b117d
Deleted: sha256:4421830dc9390171c909a2beb619a00bb2c4a1fb8f7e187b14a38e1f84aa76db
Deleted: sha256:b25c84fbc54990754cb7662c5f299f2e44700731f5f19e610f61eb7348c2c2fc
Deleted: sha256:23b17aa4ac172d8d931417d0c681ea8f94d26e353a3f9d2d3cc75e01fed6d99e
[root@root ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        1.26.0    94543a6c1aef   4 weeks ago   188MB
[root@root ~]# 

4 实操-容器

4.1运行nginx容器

[root@root ~]# docker run nginx
不指定版本会自动下载最新的镜像

4.2 查看容器

[root@root ~]# docker ps 查看正在运行的容器
CONTAINER ID   IMAGE     COMMAND                   CREATED              STATUS              PORTS     NAMES
0d5a6e9fa449   nginx     "/docker-entrypoint.…"   About a minute ago   Up About a minute   80/tcp    relaxed_napier
[root@root ~]# docker ps -a 查看全部的容器
CONTAINER ID   IMAGE     COMMAND                   CREATED              STATUS              PORTS     NAMES
0d5a6e9fa449   nginx     "/docker-entrypoint.…"   About a minute ago   Up About a minute   80/tcp    relaxed_napier
[root@root ~]# 

在这里插入图片描述

4.3启动容器

[root@root ~]# docker start 0d5a6e9fa449(容器ID)
0d5a6e9fa449
[root@root ~]# 

4.5关闭容器

[root@root ~]# docker stop  relaxed_napier
relaxed_napier
[root@root ~]# 

4.6查看容器日志

docker logs 0d5a6e9fa449(容器ID)

4.7删除容器

[root@root ~]# docker rm 0d5a6e9fa449(容器ID)
Error response from daemon: cannot remove container "/relaxed_napier": container is running: stop the container before removing or force remove
[root@root ~]# docker rm -f 0d5a6e9fa449(容器ID)强制删除
0d5a6e9fa449
[root@root ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@root ~]# 

4.8让公网可以访问到nginx

-d 后台启动
–name 指定容器的名称
-p 将主机的端口与容器的端口向映射

[root@root ~]# docker run -d --name mynginx(指定容器的ID,一个镜像可以开启多个容器) -p 80:80 nginx
26ec8493b7efa6ad322e06e9fce5446b39c00c8a501ad7c76b6c4c690158a27c
[root@root ~]# 

4.9进入容器内部

一个容器就是相当于一个独立的linux系统。

[root@root ~]# docker exec -it mynginx /bin/bash
root@26ec8493b7ef:/# ll
bash: ll: command not found
root@26ec8493b7ef:/# ls
bin  boot  dev  docker-entrypoint.d  docker-entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@26ec8493b7ef:/# cd /usr 
root@26ec8493b7ef:/usr# ls

5实操-保存镜像

5.1 提交镜像

可以将一个容器进行打包
-m 描述信息

[root@root ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                   CREATED          STATUS          PORTS                               NAMES
26ec8493b7ef   nginx     "/docker-entrypoint.…"   40 minutes ago   Up 40 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp   mynginx
[root@root ~]# docker commit -m "update indx.html" mynginx nginx:v1.0
sha256:ae6baa8d8e15110c9a893ec38a49cbf3c8e02873eb3d4a12255b8e9d3c2eea36
[root@root ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        v1.0      ae6baa8d8e15   8 seconds ago   188MB
nginx        latest    4f67c83422ec   5 days ago      188MB
nginx        1.26.0    94543a6c1aef   4 weeks ago     188MB
[root@root ~]# 

5.2 保存镜像

-o 指定导出的文件名和格式

[root@root ~]# docker save -o nginx.tar nginx:v1.0
[root@root ~]# ls
nginx.tar
[root@root ~]# 

5.3加载别人的镜像

[root@root ~]# docker load -i nginx.tar
-i 指定加载的文件

[root@root ~]# docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[root@root ~]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@root ~]# ls
nginx.tar
[root@root ~]# pwd
/root
[root@root ~]# docker load -i nginx.tar 
5d4427064ecc: Loading layer [==================================================>]  77.88MB/77.88MB
37719940dcaa: Loading layer [==================================================>]  113.9MB/113.9MB
d58e4a0f2971: Loading layer [==================================================>]  3.584kB/3.584kB
10988c108f66: Loading layer [==================================================>]  4.608kB/4.608kB
7da4ba4a0030: Loading layer [==================================================>]   2.56kB/2.56kB
261a5dc153b4: Loading layer [==================================================>]   5.12kB/5.12kB
3f6a3d22b9ce: Loading layer [==================================================>]  7.168kB/7.168kB
f810041d78ee: Loading layer [==================================================>]  14.34kB/14.34kB
Loaded image: nginx:v1.0
[root@root ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        v1.0      ae6baa8d8e15   7 minutes ago   188MB
[root@root ~]# 

相关文章:

docker实战命令大全

文章目录 1 环境准备1.1 移除旧版本Docker1.2安装工具包1.3配置docker yum源 2 安装最新docker2.1 设置开机自启docker2.2配置加速器 3 实操-镜像3.1搜索镜像3.2下载镜像3.3查看镜像3.4 删除镜像 4 实操-容器4.1运行nginx容器4.2 查看容器4.3启动容器4.5关闭容器4.6查看容器日志…...

Java线程死锁

在Java中&#xff0c;线程死锁通常发生在两个或更多个线程相互等待对方释放资源的情况下。以下是一个简单的Java示例&#xff0c;展示了如何创建线程死锁&#xff1a; public class DeadlockDemo {// 定义两个资源private static Object resource1 new Object();private stat…...

virtual box安装invalid installation directory

问题原因 看官方文档Chapter 2. Installation Details 第2.1.2所示&#xff0c;安装目录需要满足两个条件&#xff1a; 一是&#xff1a;需要安装目录的所有父目录都要满足以下访问控制条件 Users S-1-5-32-545:(OI)(CI)(RX) Users S-1-5-32-545…...

概率分析和随机算法

目录 雇佣问题 概率分析 随机算法 生日悖论 随机算法 概率分析 球与箱子 总结 雇佣问题 有n个候选人面试&#xff0c;如果面试者比目前雇佣者的分数高&#xff0c;评价更好&#xff0c;那么就辞掉当前雇佣者&#xff0c;而去聘用面试者&#xff0c;否则继续面试新的候…...

15_2 Linux Shell基础

15_2 Linux Shell基础 文章目录 15_2 Linux Shell基础[toc]1. shell基本介绍1.1 什么是shell1.2 shell使用方式1.3 脚本的执行方式1.4 脚本练习 2. 变量的种类2.1 自定义变量2.2 环境变量&#xff0c;由系统提前定义好&#xff0c;使用时直接调用2.3 位置变量与预定变量2.4 变量…...

Catia装配体零件复制

先选中要复制的零件 然后选中复制到的父节点才可以。 否则 另外一种方法是多实例化...

实用小工具-python esmre库实现word查找

python esmre库实现word查找 前言&#xff1a; 在文本中匹配特定的字符串&#xff0c;一般可以用普通的字符串匹配算法&#xff0c;KMP算法&#xff1b; python中提供了一个库&#xff0c;esmre, 通过预先将字符串存到esm对象中&#xff0c;利用这些字符串从候选的字符串中进行…...

SSM框架整合,内嵌Tomcat。基于注解的方式集成

介绍&#xff1a; SSM相信大家都不陌生&#xff0c;在spring boot出现之前&#xff0c;SSM一直是Java在web开发中的老大哥。现在虽说有了spring boot能自动整合第三方框架了&#xff0c;但是现在市面上任然有很多老项目是基于SSM技术的。因此&#xff0c;能熟练掌握SSM进行开发…...

系统架构设计师【论文-2016年 试题4】: 论微服务架构及其应用(包括写作要点和经典范文)

论微服务架构及其应用&#xff08;2016年 试题4&#xff09; 近年来&#xff0c;随着互联网行业的迅猛发展&#xff0c;公司或组织业务的不断扩张&#xff0c;需求的快速变化以及用户量的不断增加&#xff0c;传统的单块(Monolithic)软件架构面临着越来越多的挑战&#xff0c;…...

面试题:String 、StringBuffer 、StringBuilder的区别

String、StringBuffer、和StringBuilder都是用于处理字符串的操作类&#xff0c;但它们之间存在一些关键性的差异&#xff1a; 1.不可变性与可变性&#xff1a; String&#xff1a;字符串常量&#xff0c;是不可变的。一旦创建&#xff0c;其内容就不能被改变。对字符串的任何…...

TLS指纹跟踪网络安全实践(C/C++代码实现)

TLS指纹识别是网络安全领域的重要技术&#xff0c;它涉及通过分析TLS握手过程中的信息来识别和验证通信实体的技术手段。TLS&#xff08;传输层安全&#xff09;协议是用于保护网络数据传输的一种加密协议&#xff0c;而TLS指纹则是该协议在实际应用中产生的独特标识&#xff0…...

小白学RAG:大模型 RAG 技术实践总结

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 汇总合集…...

Doris Connector 结合 Flink CDC 实现 MySQL 分库分表

1. 概述 在实际业务系统中为了解决单表数据量大带来的各种问题&#xff0c;我们通常采用分库分表的方式对库表进行拆分&#xff0c;以达到提高系统的吞吐量。 但是这样给后面数据分析带来了麻烦&#xff0c;这个时候我们通常试将业务数据库的分库分表同步到数据仓库时&#x…...

ModbusTCP、TCP/IP都走网线,一样吗?

在现代通信技术中&#xff0c;Modbus/TCP和TCP/IP协议是两种广泛应用于工业自动化和网络通信领域的协议。尽管它们都运行在网线上&#xff0c;但它们在设计、结构和应用场景上有着明显的区别。 Modbus/TCP协议是什么 Modbus/TCP是一种基于TCP/IP的应用层协议&#xff0c;它是Mo…...

网络学习(13)|Spring Boot中获取HTTP请求头(Header)内容的详细解析

文章目录 方法一&#xff1a;使用HttpServletRequest实现原理代码示例优点缺点适用场景 方法二&#xff1a;使用RequestContextHolder实现原理代码示例优点缺点适用场景 方法三&#xff1a;使用RequestHeader注解实现原理代码示例优点缺点适用场景 总结 在Spring Boot应用中&am…...

【漏洞复现】宏景eHR pos_dept_post SQL注入漏洞

0x01 产品简介 宏景eHR人力资源管理软件是一款人力资源管理与数字化应用相融合&#xff0c;满足动态化、协同化、流程化、战略化需求的软件。 0x02 漏洞概述 宏景eHR pos_dept_post 接囗处存在SQL注入漏洞,未经过身份认证的远程攻击者利用此漏洞执行任意SQL指令&#xff0c;…...

82. 删除排序链表中的重复元素 and II

链接直达&#xff1a; 保留重复元素 不保留重复元素 题目&#xff1a; 1: 给定一个已排序的链表的头 head &#xff0c; 删除所有重复的元素&#xff0c;使每个元素只出现一次 。返回 已排序的链表 。示例 1&#xff1a;输入&#xff1a;head [1,1,2] 输出&#xff1a;[1…...

C++ 判断目标文件是否被占用(独占)(附源码)

在IM软件中发起文件发送时,如果要发送的是某word文件,并且该word文件被office打开,则会提示文件正在被占用无法发送,如下所示: 那文件被占用到底是如何判断出来的呢?其实很简单,调用系统API函数CreateFile,打开该文件(OPEN_EXISTING),传入FILE_SHARE_READ共享读标记…...

计划任务 之 一次性的计划任务

计划任务 作用:定时自动完成特定的工作 计划任务的分类&#xff1a; &#xff08;1&#xff09;一次性的计划任务 例如下周三对系统的重要文件备份一次 &#xff08;2&#xff09;周期性重复计划任务 例如每天晚上12&#xff1a;00备份一次 一次性的任务计划&#xff1a…...

非比较排序之计数排序

目录 一、什么是计数排序 二、思路 三、代码实现 一、什么是计数排序 计数排序是一种非比较型的排序算法&#xff0c;它通过统计待排序数据中每个元素出现的次数&#xff0c;然后根据这个次数来进行排序。计数排序的具体步骤如下&#xff1a; 首先找出待排序数据中的最大值…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

spring:实例工厂方法获取bean

spring处理使用静态工厂方法获取bean实例&#xff0c;也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下&#xff1a; 定义实例工厂类&#xff08;Java代码&#xff09;&#xff0c;定义实例工厂&#xff08;xml&#xff09;&#xff0c;定义调用实例工厂&#xff…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...

算术操作符与类型转换:从基础到精通

目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...

用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章

用 Rust 重写 Linux 内核模块实战&#xff1a;迈向安全内核的新篇章 ​​摘要&#xff1a;​​ 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言&#xff0c;受限于 C 语言本身的内存安全和并发安全问题&#xff0c;开发复杂模块极易引入难以…...