Docker-一篇即可熟悉Docker

node-red 可视化探索 配置socket选择配置流程产生url。 阅读详情
Docker概述

Docker相对于虚拟机而言,Docker是更轻量的"虚拟机".

Docker本身不是容器,是创建容器的工具,是应用容器引擎:

Docker的概念:

  1. **“Build,Ship and Run:” ** 搭建、发送以及运行三板斧

  2. “Build once,Run anywhere:”(搭建一次,到处能用)

  3. “Docker技术的三大概念:”

    1. 镜像(Image):

    2. 容器(Container):

    3. 仓库(Repository):

(容器)docker基本指令

容器:

显示docker的基本情况(从客户端到服务器端两个方面介绍)

sudo docker info

创建并运行

基础镜像是容器创建必备的

创建交互式容器

sudo docker run -i -t 基础镜像  
--name:指定容器的名字;注意容器的命名必须是唯一的
--restart:当容器发生某种错误时,Docker会检查容器的退出代码,决定是否重启 
		比如:--restart=always无论容器的退出代码是什么,都会自动重启
			--restart=on-failure:当容器的退出代码为错误代码(非0)时就会自动重启
			--restart=on-failure:n 当容器的退出代码为错误代码(非0)时就会自动重启,重启次数最多不超过n次

比如 sudo docker run -i -t ubuntu /bin/bash

以ubuntu基础镜像来创建容器,并运行/bin/bash命令启动了一个bash shell,如果本地镜像仓库不存在该镜像,则会从Docker Hub Rejistry中pull中镜像

然后在该容器中执行任何命令,想要退出容器则输入exit

创建守护式容器(没有交互式会话)

sudo docker run --name xxx -d 基础镜像 #创建一个容器名为xxx的基础镜像下的容器且该容器为守护式镜像。
--name:指定容器的名字;注意容器的命名必须是唯一的
--restart:当容器发生某种错误时,Docker会检查容器的退出代码,决定是否重启
		比如:--restart=always无论容器的退出代码是什么,都会自动重启
			--restart=on-failure:当容器的退出代码为错误代码(非0)时就会自动重启
			--restart=on-failure:n 当容器的退出代码为错误代码(非0)时就会自动重启,重启次数最多不超过n次

例如:

docker run -d ubuntu bash -c “shuf -i 1-10000 -n 1 -o /data.txt && tail -f /dev/null”

会在ubuntu为基础镜像生成一个容器,容器中会执行命令bash -c

其中bash -c “string command” string command可以是命令或者一个可执行文件的绝对路径
bash -c命令含义

启动已经停止的容器

sudo docker start 容器名/容器ID
sudo docker restart 容器名/容器ID

管理

查看容器

sudo docker ps #只能看到正在运行的容器
sudo docker ps -a#会列出所有容器,包括正在运行的和已经停止的
sudo docker ps -l#会列出最后一次运行的容器,包括正在运行的和已经停止的

附着到容器上(首先该容器必须是交互式容器)

Docker容器重新启动的时候,会沿用docker run命令时指定的参数来运行。此时我们可以重新附上到该容器的会话上即交互shell上来控制容器

sudo docker attach 容器名/容器ID

查看容器的日志

sudo docker logs 容器名/容器ID
-f:追踪日志即实时更新
--tail:跟踪容器日志的某一个片段
-t:为每个日志项加上时间戳

查看容器内的所有进程

sudo docker top 容器名/容器ID

在容器内部运行进程

可以在容器内部额外启动新进程,可以在容器内运行的进程有两种类型:后台任务和交互式任务。

后台任务:

sudo docker exec -d 容器名/容器ID 命令  
e.g:
sudo docker exec -d daemon-dave touch /etc/new_config_file
在daemon-dave容器中执行一个后台任务即创建一个空文件

打开一个shell的交互式会话

sudo docker exec  -i -t 容器名/容器ID 命令

停止

对于交互式容器:

在会话中输入exit,则会退出该会话与此同时该容器也会停止

对于守护式容器:

sudo docker stop 容器名/容器ID
或者sudo docker kill 容器名/容器ID

删除

删除不需要的容器

sudo docker rm  容器名/容器ID
删除所有容器
sudo docker rm `docker ps -a -q`
(镜像)docker基本指令

查看所有镜像:

sudo docker images :我们已经获得一个镜像列表,
sudo docker images xxx:获得xxx仓库的镜像列表

镜像保存在仓库中,则仓库存在于Registry中。默认的Registry是由Docker公司运营的公共Registry服务,即Docker Hub

本地镜像保存在Docker宿主机的/var/lib/docker目录下。在/var/lib/docker/containers目录下看到所有的容器

拉取特定仓库的所有内容信息以及下载仓库镜像

sudo docker pull xxx:拉取xxx仓库的所有内容信息即下载仓库中的镜像
sudo docker pull xxx:yyy 拉取xxx仓库下标签为yyy的镜像

一个仓库下有不同镜像,Docker提供了一种称为标签(tag)的功能。我们可以通过在仓库名后面加上一个冒号和标签名来指定该仓库中的某一镜像

Docker Hub中有两种类型的仓库:用户仓库(user repository)和顶层仓库(top-level repository).

用户仓库的命名由用户名和仓库名两部分组成,如jamtur01/puppet;此时用户名为jamtur01,仓库名为puppet

构建镜像:

我们如何修改自己的镜像,并且更新和管理这些镜像呢?

一般来说,我们不是真正的“创建”新镜像,而是基于一个已有的基础镜像,如ubuntu或fedora等,构建新镜像而已。

编写Dockerfile之后使用docker build 命令

  1. 登录Docker Hub
sudo docker login
  1. Dockerfile的定义文件和docker build命令来构建镜像。Dockerfile使用基本的基于DSL语法的指令来构建一个Docker镜像,之后使用docker build命令基于该Dockerfile中的指令构建一个新的镜像。

    1. 先创建一个目录在该目录中书写Dockerfile文件;这个目录就是我们的构建环境。
    Docker会在构建镜像时将构建上下文和该上下文中的文件或目录上传到Docker守护进程中
    mkdir xxx
    cd   xxx
    vim Dockerfile
    
    2.书写Dockerfile文件
    我们第一个Dockerfile文件
    
    ### Version:0.0.1
    FROM ubuntu:14.04
    MAINTAINER James Turnbull "james@example.com"
    RUN apt update
    RUN apt install -y nginx
    RUN echo 'Hi,I am in your container'\
    	>/usr/share/nginx/html/index.html
    EXPOSE 80
    

    Dockerfile中的指令会按顺序从上到下执行,所以应该根据需要合理安排指令的顺序。

    Dockerfile中的每条指令都是:指令名(全部大写) 参数

    Docker大体上按照如下流程执行Dockerfile中的指令:

接下来我会详细介绍如何编写Dockerfile实现Go应用程序部署

用Arduino和FS-i6X遥控器,从零开始打造你的第一只仿生扑翼蝴蝶(附完整代码解析) 本文详细介绍了如何利用Arduino和FS-i6X遥控器从零开始制作仿生扑翼蝴蝶,包括硬件准备、电路连接、代码解析和调试技巧。通过完整的代码示例和参数说明,帮助读者快速掌握仿生机器人的制作要点,实现蝴蝶的自然飞行效果。 阅读详情

相关推荐

避坑指南:你的VASP CI-NEB计算为什么不收敛?常见错误分析与解决思路

本文深入解析VASP CI-NEB计算不收敛的常见问题,提供从结构准备到参数设置的系统解决方案。针对过渡态计算中的能量曲线异常、中间图像偏离等典型问题,详细介绍了诊断方法和实用工具,帮助研究者高效解决CI-NEB收敛难题,提升计算效率。

weixin_29698641的博客 431

docker exec命令详解

options 作用 进入容器的 CLI 模式 备注:其实还有几个 options,但是目前还没用到,要用的时候再写吧实际栗子 执行 tomcat 容器的 startup.sh 脚本 进入容器的 CLI 模式(最常用) 执行普通命令 指定工作目录执行命令 以 root 用户身份进入容器(重点) 好处就是,你在容器里敲命令就是 root 用户,畅通无阻,不存在权限不足的问题...

tiger_Angle 1万+

Atlas 300I Pro推理卡性能深度测试:对比业界同类产品的能效比与算力表现

本文对昇腾Atlas 300I Pro推理卡进行了深度性能评测,重点对比了其与业界同类产品的能效比与算力表现。实测数据显示,该卡在运行BERT等模型时展现出高达39.6句子/秒/瓦的卓越能效比,电力成本可降低40%以上,同时其达芬奇架构和硬件加速特征检索能力,为高密度在线推理和向量检索场景提供了强大支撑。

weixin_29031161的博客 578

Docker exec用法选项示例注意事项权威详解

Docker exec用法选项示例注意事项权威详解

wang2leee的博客 716

从412到200:一步步拆解瑞数6代jsvmp的cookie生成与验证流程

本文深入解析瑞数6代JSVMP的动态安全防护机制,详细拆解从412到200状态的cookie生成与验证流程。通过剖析JSVMP虚拟机核心机制、动态元数据解析及环境检测绕过策略,为逆向工程师提供实用的技术解决方案,帮助突破瑞数6代的高级防御体系。

weixin_30342209的博客 508

245. 项目195:简易文字冒险游戏——《跟老吕学Python·新手》

如果您在学习本专栏教程时遇到任何问题,或有任何技术交流的意愿,欢迎在文章评论区留言,或通过优快云私信与老吕取得联系。老吕将及时回复您的留言,并与您共同探讨,以期为大家提供更为精准和有效的帮助。老吕珍视每一位读者的反馈和支持,期待与您共同学习、共同进步,共同创造美好的未来!我们的目标是不仅教会您Python语言,更是培养您解决问题的思维方式。请随意翻阅,按照自己的节奏学习,让这本专栏成为您编程旅程中的可靠伙伴。开发一个简易的文字冒险游戏,通过文本描述场景和事件,让玩家通过选择不同的选项来推动故事发展。

Python老吕的博客 711

docker 命令详解(五):exec

docker exec 命令详解。

youzhouliu的博客 2665

鸿宇多用户商城user.php RCE漏洞复现

鸿宇多用户商城 user.php 存在任意命令执行漏洞,攻击者可通过该漏洞在服务器端任意执行代码,写入后门,获取服务器权限,进而控制整个web服务器。

0xSec 1621

docker exec

是Docker容器管理工具中的一个命令,用于在正在运行的容器中执行命令。

wang2leee的博客 5205

【CANoe】CAPL_ECU上电后首帧报文发出时间检测

【CANoe】CAPL_ECU上电后首帧报文发出时间检测,通过CANoe I/O口检测电压实现

星Yeah 的博客 2508

系统架构最佳实践 -- 统一身份认证系统

设计和实现一个高效、安全的统一身份认证系统需要考虑到系统架构设计、用户认证与授权、用户身份管理、安全性保障、日志记录与审计、高可用性与容错性,以及用户体验优化等多个方面。通过合理的架构设计、安全措施和用户体验优化,可以构建一个满足用户需求、提供安全可靠的身份认证服务的系统。本文将总结统一身份认证系统的架构设计与实践经验,帮助读者了解如何设计和实现一个高效、安全的统一身份认证系统。统一身份认证系统应支持详细的日志记录和审计功能。通过合理的身份认证策略和授权机制,可以确保用户身份的准确性和信息的安全性。

xiaoli8748的专栏 1704

Docker:docker exec命令简介

Docker:docker exec命令简介

hhd1988的专栏 1153

Claude Code 从入门到精通,通过实战项目穿插 Agent Skills、MCP、Hooks、子代理、插件等十五个知识点

本文介绍了Claude Code的高级使用技巧,通过一个个人简历网站实战项目,详细讲解了15个核心知识点。主要内容包括:三种权限模式(默认/编辑/计划)的使用与切换;历史会话管理(/resume、/rename、/clear命令);会话回滚功能(/rewind);以及危险参数--dangerously-skip-permissions的注意事项。文章还演示了如何通过计划模式拆分代码文件,并强调了在复杂任务中仔细检查规划步骤的重要性。这些技巧能帮助开发者更高效地使用Claude Code完成项目开发。

1788

docker入门,这一篇就够了。

2w字的docker入门篇,作者花了半个月时间才写完的,希望对大家学习docker有一定的帮助!

m0_61503020的博客 26万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

熟悉的 Docker,陌生的 Podman

然而,在容器技术不断演进的过程中,Podman 作为一种无守护进程的容器引擎逐渐进入人们的视野。本文将通过全面的对比与分析,从架构、使用场景、安全性等多个角度详细解析 Docker 和 Podman,并结合实际案例和数据,帮助读者理解两者的异同以及各自的优势与适用场景。未来,随着 Podman 的生态逐步完善,其与 Docker 的竞争将更加激烈,而开发者也可以根据需求灵活选择工具。Docker 于 2013 年首次推出,旨在通过轻量化的容器化技术,简化应用程序的开发、部署和运行。

Interview_TC的博客 2753

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Docker Compose从入门到熟悉

Compose允许用户通过一个docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。Compose模板文件是一个定义服务、网络和卷的YAML文件。Compose模板文件默认路径是当前目录下的docker-compose.yml,可以使用.yml或.yaml作为文件扩展名。Docker-Compose标准模板文件应该包含version、services、networks 三大部分,最关键的是services和networks两个部分。

小石潭记丶 2178

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

你熟悉Docker吗?

Docker是一种流行的容器化平台,允许开发人员将应用程序及其所有依赖项打包成一个独立的、可移植的容器,实现跨平台的部署和运行。通过Docker,开发人员可以消除环境差异和依赖问题,使得应用程序在不同的主机上能一致地运行。通过强大的容器管理工具和命令行接口,使得容器的创建、启动、停止和管理变得非常简单。通过镜像机制,用户可以轻松地共享和复用容器

今天你学Java了吗 1056

docker从入门到熟悉

构建三步骤1、编写Dockerfile文件2、docker build命令构建镜像3、docker run 依镜像运行容器实例。

小石潭记丶 1743

Docker(熟悉)

Docker 熟悉

#斐科同学# 1407

Docker基础与实战,看这一篇就够了

docker 基础 什么是Docker Docker使用Google公司推出的Go 语言进行开发实现,基于Linux内核的cgroup,namespace,以及AUFS类的Union FS等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。 Docker 在容器的基础上,进行了进一步的封装,从...

飘渺Jam的博客 7860

Docker | 深度学习中的docker看这一篇就够啦

Docker是一种相对使用较简单的容器,我们可以通过以下几种方式获取信息:1,通过docker run执行命令,或许返回信息2,通过docker logs去获取日志,做有针对性的筛选3,通过systemctl status docker查看docker服务状态4,通过journalctl -u docker.service查看日志。

weixin_44649780的博客 9060

Docker——从入门到熟悉

在这篇文章中,荔枝主要介绍了自己对自己的比赛项目进行镜像打包、镜像推送和镜像拉取的操作,同时对于如何定制镜像的操作也进行了介绍,总之这一套流程走完荔枝可以说真正入门Docker啦哈哈哈。

荔枝当大佬的博客 557

[2] 一篇文章带你入门Docker

大多数Docker入门相关文章都是从一串命令输出一个“Hello World”开始的。本文则是按照Docker镜像、Docker容器再到“Hello World”进行循序渐进的讲解。阅读本文者需要对Linux命令很熟悉,还需要明白镜像、仓库、容器三大概念。 1. 镜像操作入门 1.1 概念 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的...

yky的博客 1126

Docker 一篇到位

Docker 一篇入门实战 镜像 容器 目录挂载 卷映射 Docker Compose Dockerfile

原来45的博客 1505

Docker入门,这一篇就够了

0. 学习目标 能够知道什么是docker 能够使用命令启动或停止docker 能够使用docker镜像相关命令 能够使用docker容器相关命令 能够部署MySQL、Tomcat、Nginx、Redis 能够修docker-compose模板文件启动容器 能够将容器保存为镜像 能够知道Dockerfile的常用命令 1. Docker概述 1.1. Docker简介 Docker 是一个开源的应用容器引擎,基于 Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包

terence的博客 4万+

学习docker 这一篇就够了

Docker 本质上是一套应用打包、分发、运行的标准化解决方案它让开发者可以将应用程序及其所有依赖(代码、运行时、库、环境变量、配置文件等)打包到一个可移植的容器中这个容器可以被分发到任何支持 Docker 的环境(开发机、测试服务器、云服务器等)无论运行环境如何变化,容器内的应用都能以完全相同的方式运行,实现了 "一次构建,到处运行"(Build once, run anywhere)常用指令详解指令作用示例FROM指定基础镜像(必须是第一条指令)WORKDIR。

weixin_63540620的博客 2077
上一篇: Distributed_事务_共识(原子提交问题)
下一篇: Makefile入门
Blockchain410
博客等级 码龄5年 3230粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blockchain410

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值