docker基本命令-容器

news2024/12/23 1:23:41

容器

基本概念

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的 类 和 实例 一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。

常用命令

创建并运行容器

命令

docker run xxx

运行mysql镜像

// 5.7.25版本
docker run -d -p 3307:3306 --name mysql_muse -e MYSQL_ROOT_PASSWORD=servyou@muse 98455b9624a9
// 8.0.20版本
docker run -d -p 3308:3306 --name mysql_muse8.0.20 -e MYSQL_ROOT_PASSWORD=servyou@muse be0dbf01a0f3

-d: 守护进行,在后台运行
-p:端口的映射,宿主机的端口/容器的端口
3307是宿主机的端口(本机对外暴露的端口,别的机器通过这个端口连接数据库)
3306指的是当前启动容器的端口
–name: 给容器设置个名称,这里的名称就叫mysql
-e: mysql的密码, 这里是给root用户设置的密码为 servyou@muse
最后跟着是镜像id
在这里插入图片描述

运行centos系统

docker run -it 300e315adb2f /bin/bash

在这里插入图片描述
在这里插入图片描述

运行nginx

// 运行nginx
docker run -d -p 80:80 --name trident-web-1.2.0 6fca7654d0ab

// 阿里云服务器运行nginx容器并与阿里云宿主机挂载容器卷
docker run -d -p 80:80 --name hexo-blog -v /root/workspace/hexo-blog:/usr/webapp nginx

运行node容器


docker run -p 4000:4000 --name hexo -it 1d88d89c7230 /bin/bash

// 宿主80端口映射容器4000端口,直接访问域名,就会转到容器内部的4000端口的服务了
docker run -p 80:4000 --name hexo -it 1d88d89c7230 /bin/bash

重启容器

docker restart + id
docker restart 60d763cdb56a

在这里插入图片描述

停止容器

停止单个容器

docker stop + containerId
docker stop 38eb55a92d74

在这里插入图片描述

停止所有容器

docker stop $(docker ps -q)

查看容器

查看所有运行中的容器

docker ps

查看所有的-包括停止的

docker ps -a

查看最近运行过的容器

docker ps -l

在这里插入图片描述

删除容器

删除单个容器

docker rm +id
docker rm 69541657497a

删除一个已近存在的容器,删除这个容器之前,需要先stop不然会收到如下错误
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

删除所有容器

docker rm $(docker ps -aq)

停止并删除所有容器

docker stop $(docker ps -q) & docker rm $(docker ps -aq)

进入容器内部

docker exec -it 容器id sh
docker exec -it fc29bdda6386 sh

# 有的Dockerfile追加了 CMD /bin/bash 那就不用加后面的这个 /bin/bash 否则需要加的,不然就会kill itself
docker exec -it 容器id /bin/bash

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

attach

docker attach containerID

docker attach可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。而使用exec的方式进入容器,exit出来之后,该容器可以正常运行
在这里插入图片描述

在这里插入图片描述

退出容器

在这里插入图片描述

新建镜像

如果我们运行一个容器,比如是ngnix, 此时运行的是一个从官网拉下来的标准配置的ngnix,我们在运行的容器中按需修改了一些配置,此时我们可以提交该容器成为新的镜像,新的镜像就可以包含我们修改的一些配置。以后就可以以此为新的镜像启动。

docker commit -m="提交的描述信息" -a="作者" 容器id 要创建的目标镜像名:[标签名]

等将一个容器打成新的镜像之后,又可以将整个新的镜像导出出去,供给别人使用

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

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

相关文章

.NET Framework .NET Core与 .NET 的区别

我们在创建C#程序时,经常会看到目标框架以下的选项,那么究竟有什么区别? 首先 .NET是一种用于构建多种应用的免费开源开发平台,可以使用多种语言,编辑器和库开发Web应用、Web API和微服务、云中的无服务器函数、云原生应用、移动应用、桌面应用、Windows WPF、Windows窗体…

搭建一个中心化的定时服务

1. 背景 在物联网络,很多设备之间都在进行交互,其中云端在远程交流中起到了很重要的作用。比如,一台设备想进行调温,但是需要知道此时房间的温度,那就需要定时去查询传感器测出来的房间温度,如果温度过高&a…

【C++学习】【STL】list容器

list 容器,又称双向链表容器,即该容器的底层是以双向链表的形式实现的。这意味着,list 容器中的元素可以分散存储在内存空间里,而不是必须存储在一整块连续的内存空间中。可以看到,list 容器中各个元素的前后顺序是靠指…

【NodeJs】使用ffmpeg将视频webm转换为mp4

使用Chrome浏览器录制视频文件是webm格式,但是很多媒体播放器是不支持的,不利于分享,需要转换为mp4格式才行,接下来给大家讲 ffmpeg ffmpeg是什么呢, 一个免费开源的视频转换工具,一款音视频编解码工具&…

日志与可视化方案:从ELK到EFK,再到ClickHouse

EFK方案 从ELK谈起 ELK是三个开源软件的缩写,分别表示:Elasticsearch,Logstash,Kibana。新增了一个FlieBeat,它是一个轻量级的日志收集处理工具,FlieBeat占用资源少,适用于在各个服务器上搜集…

JS语法(扫盲)

文章目录一、初识JavaScript二、第一个JS程序JS代码的引入JS程序的输出三、语法变量使用动态类型内置类型运算符强类型语言&弱类型语言条件语句循环语句数组创建数组获取数组元素新增数组元素删除数组元素函数语法格式形参实参个数的问题匿名函数&函数表达式作用域作用…

PHP 的运行方式有哪些?

PHP本质上的运行方式可以分为两种: 基于命令行的基于PHP-FPM的 但实际上,PHP能做的事很多,很多场景下,不同的运行方式能让开发更方便,减轻各种工作。 测试开发 PHP内置了一个HTTP 的server。这意味着,很…

stm32外设-GPIO

0. 写在最前 本栏目笔记都是基于stm32F10x 1. GPIO基本介绍 GPIO—general purpose intput output 是通用输入输出端口的简称,简单来说就是软件可控制的引脚, STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的…

java Date 和 Calendar类 万字详解(通俗易懂)

Date类介绍及使用关于SimpleDateFormat类Calendar类介绍及使用LocalDateTime类介绍及使用关于DateTimeFormatter类一、前言本节内容是我们《API-常用类》专题的第五小节了。本节内容主要讲Date 类 和 Calendar 类,内容包括但不限于Date类简介,Date类使用…

【微信小程序】-- 自定义组件 - 数据监听器 (三十四)

💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…

传奇开服流程—传奇单机架设教程

现在传奇私服还是那么的火爆,上次有报道发布站一年盈利几个亿,还是有很大的机会,很多玩家因为GM开服关服给折腾,刚充的钱服务器就关了,很是恼火,于是都想自己整个服开开,但又不知道从何下手&…

三菱FX5U之数据处理类指令的使用

本课程使用三菱PLC works3编程软件进行教学,并使用works3的仿真功能进行PLC仿真,学习的时候不需要有实物PLC。 补充说明:三菱 FX 5U系列PLC使用的是GX works3编程软件,FX 3U、Q系列PLC使用的是GX works3编程软件。 第一章 八个案…

YUV实践记录

文章目录YUV基础介绍:不同采样YUV格式的区别为什么要使用YUV格式呢?YUV的存储方式Android中的YUV_420_888附录:YUV基础介绍: YUV在做手机图像或者视频处理的时候会经常用到的一个格式,用此文来记录YUV相关介绍&#xf…

hibernate学习(五)

hibernate学习(五) hibernate的一对多关联映射: 一、数据库表与表之间关系 一对多建表原则: 多对多的建表原则: 一对一建表原则: (1)唯一外键对应: (…

时间复杂度和空间复杂度的计算

目录 算法的复杂度 时间复杂的的概念 时间复杂度计算方法 大O的渐进表示法 空间复杂的概念 空间复杂的的计算方法 时间和空间复杂度的应用 消失的数字 轮转数组 算法的复杂度 算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存&…

modbus转profinet网关连接5台台达ME300变频器案例

通过兴达易控Modbus转Profinet(XD-MDPN100)网关改善网络场景,变频器有掉线或数据丢失报警,影响系统的正常运行,将5台 ME300变频器modbus转Profinet到1200PLC,通过网关还可以实现Profinet转modbus RTU协议转…

LabVIEW中以编程方式获取VI克隆名称

LabVIEW中以编程方式获取VI克隆名称演示如何以编程方式获取VI的名称或克隆名称。如果VI作为顶级VI运行,则将显示VI的名称。如果VI在主VI中用作子VI,它将返回克隆的名称。在项目开发过程中,有时需要获取VI的名称。在此示例中,实现了…

【数论】试除法判断质数,分解质因数,筛质数

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 现已更新完KMP算法、排序模板,之…

代码管理--svnadmin工具介绍

1、简介 SVNAdmin2 是一款通过图形界面管理服务端SVN的web程序。正常情况下配置SVN仓库的人员权限需要登录到服务器手动修改 authz 和 passwd 两个文件,当仓库结构和人员权限上了规模后,手动管理就变的非常容易出错,本系统能够识别人员和权限…

【AWS入门】IAM基本应用-2023/3/4

目录IAM概述根用户和IAM用户参考IAM概述 IAM(Identity Access Management)是身份和访问管理服务,要访问AWS服务和资源,就要使用IAM进行身份验证和授权。当我们通过控制台,CLI,或API访问AWS服务时,都需要通…