Docker的简单介绍以及常用命令介绍

目录

一、Docker的简介

二、Docker安装

环境配置

阿里云镜像仓库配置

 三、Docker常用命令

3.1 基本命令

3.2 镜像命令

3.3 容器命令


一、Docker的简介

Docker是一个被广泛使用的开源容器引擎,是一种操作系统级别的虚拟化技术,它以一种特殊进程的方式运行于宿主机上,它依赖于liunx内核特性:namespace(名字空间进行资源的隔离)和cgroups(限制、记录任务组所使用的物理资源),它也可以对应用程序进行打包。

简单来理解就是,在VMware上新建一个虚拟机就相当于是一台电脑;而docker呢就相当于这个VMware,不过docker如果新建两个虚拟机实际上是相当于一台电脑两个操作系统。

Docker是基于Linux内核实现的,Docker相比虚拟机的交付速度更快,资源消耗更低,启动速度更快,占用空间更小。Docker采用客户端/服务器端架构, 使用远程API来管理和创建容器, 其可以轻松的创建一个轻量级的, 可移植的, 自给自足的容器。

二、Docker安装

我这里是centos7服务器已经换成阿里源的状态下进行安装

环境配置

#查看内核

uname -r

#更新yum源为最新
yum update -y

#安装Docker所需要的工具包
yum install -y yum-utils device-mapper-persistent-data lvm2

#设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#下载安装Docker
yum install docker-ce docker-ce-cli containerd.io -y -y
#启动Docker并且设置开机自启动
systemctl start docker
systemctl enable docker
#检测Docker是否安装成功
docker version

阿里云镜像仓库配置

进入阿里云镜像官方网址:

阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台

cd /etc/docker/
vi daemon.json

#在文件中添加 配置        注:这里的镜像自己去阿里镜像网站上c,每个人的都不一样
{
  "registry-mirrors": ["https://ryf4ojng.mirror.aliyuncs.com"]
}

systemctl daemon-reload
systemctl restart docker

 三、Docker常用命令

3.1 基本命令

#启动Docker

systemctl start docker

#停止Docker

systemctl stop docker

#重启Docker

systemctl restart docker

#开机启动Docker

systemctl enable docker

#查看Docker概要信息

docker info

#查看Docker帮助文档

docker --help

#查看Docker版本信息

docker version

3.2 镜像命令

1. 列出本机所有镜像 

docker images

2. docker search 搜索镜像

和 https://hub.docker.com/ 这里的搜索效果一样

3. docker pull 下载镜像

docker pull 镜像名称:[TAG]

注意:不加TAG,默认下载最新版本latest

4. docker rmi 删除镜像

  • #删除单个:docker rmi 镜像名称:[TAG]

如果不写TAG,默认删除最新版本latest

有镜像生成的容器再运行时候,会报错,删除失败;

我们需要加 -f 强制删除。

  • #删除多个:docker rmi -f 镜像名称1:[TAG] 镜像名称2:[TAG]

中间空格隔开。

  • #删除全部:docker rmi -f $(docker images -qa)

3.3 容器命令

1. Docker创建并启动容器

  • 启动普通容器: docker run --name 别名 镜像ID 
  • 启动交互式容器:  docker run -it --name 别名 镜像ID 

运行一个容器,取别名,交互模式运行,以及分配一个伪终端,并且进入伪终端;

注意: 

  1. 启动普通容器的方式基本不用,没有伪终端,没有太大价值;
  2. 启动交互式容器的方式,容器一创建完毕,立即进入伪终端。

--name="容器新名字":为容器指定一个名称;

-i:以交互模式运行容器,通常与-t或者-d同时使用;

-t:为容器重新分配一个伪输入终端,通常与-i同时使用;

-d: 后台运行容器,并返回容器ID;

-P: 随机端口映射,容器内部端口随机映射到主机的端口;

-p: 指定端口映射,格式为:主机(宿主)端口:容器端口。

  • 守护式方式创建并启动容器

 docker run -di --name 别名 镜像ID 

执行完命令后,终端依然在宿主机上。

  • 启动容器,并执行/bin/bash命令;

 docker run -it --name 别名 镜像ID  /bin/bash命令

  • 端口映射

docker run -it -p 8888:8080 tomcat

docker run -it -P tomcat

2. 列出容器

docker ps [OPTIONS]

  • OPTIONS说明:

-a :显示所有的容器,包括未运行的。

-f :根据条件过滤显示的内容。

--format :指定返回值的模板文件。

-l :显示最近创建的容器。

-n :列出最近创建的n个容器。

--no-trunc :不截断输出。

-q :静默模式,只显示容器编号。

-s :显示总的文件大小。

  • docker ps 查看正在运行的容器

docker ps -a 查看所有容器

docker ps -n 2  显示最近创建的2个容器

docker ps -f status=exited 查看停止的容器

3. Docker退出容器

exit 容器停止退出

ctrl+P+Q 容器不停止退出

4. Docker进入容器

  • docker attach 容器ID or 容器名 

  • Docker进入容器执行命令

docker exec -it 容器名称 或者 容器ID 执行命令

直接操作容器,执行完 回到 宿主主机终端。

一般用于 启动容器里的应用 比如 tomcat nginx redis elasticsearch等等

5. Docker启动容器

docker start 容器ID or 容器名

6. Docker重启容器

docker restart 容器ID or 容器名

7. Docker停止容器

  • docker stop 容器ID or 容器名
  • 暴力删除,直接杀掉进程 (不推荐)

docker kill 容器ID or 容器名

8. Docker删除容器

docker rm 容器ID  

  • 如果删除正在运行的容器,会报错,我们假如需要删除的话,需要强制删除;

强制删除docker rm -f 容器ID

  • 删除多个容器 

docker rm -f 容器ID1  容器ID2 中间空格隔开

  • 删除所有容器

docker rm -f $(docker ps -qa)

9. Docker容器日志

简单粗暴方式,直接去docker容器文件里找;

/var/lib/docker/containers/

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

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

相关文章

vue 移动端app预览和保存pdf踩坑

需求 使用Vue开发h5,嵌套到Android和IOS的Webview里,需要实现pdf预览和保存功能,预览pdf的功能,我这边使用了三个库,pdf5,pdf.js,vue.pdf,现在把这三个库在app端的坑分享一下。先说…

NFS服务器挂载失败问题

问题 mount.nfs: requested NFS version or transport protocol is not supported背景:现在做嵌入式开发,需要在板端挂载服务器,读取服务器文件。挂载中遇到该问题。 挂载命令长这样 mount -t nfs -o nolock (XXX.IP):/mnt/disk1/zixi01.ch…

c++学习:类

C 中的类(class)是一种编程结构,用于创建对象。 这些对象可以拥有属性(即数据成员)和行为 (即成员函数或方法)。 类的概念是面向对象编程的核心之一,其主要目的是将数据和与数据相…

vue实现水印功能

目录 一、应用场景 二、实现原理 三、详细开发 1.水印的实现方式 2.防止用户通过控制台修改样式去除水印效果(可跳过,有弊端) 3.水印的使用 (1)单页面/全局使用 (2)全局使用个别页面去掉…

绘制窗口及窗口位置变化

为了方便窗口的移动 ,及相交窗口关闭之后被遮挡窗口的重绘,因此给每个窗口建立一个内存BUF,等到不涉及内容变更的重绘,只需要将该BUF复制到显存之中。 然而,重绘时存在一个被遮挡时如何操作的问题。比如下图中依次为从…

Rust 从 PyTorch 到 Burn

一、性能轮盘赌 机器码相同,但放置在不同的地址上,性能可能截然不同。 作为软件开发人员,我们经常假设特定代码的性能仅由代码本身和运行它的硬件决定。这种假设让我们在优化代码以获得更好性能时感到有控制力。虽然在大多数情况下这种假设…

【QT+JS】QT和JS 中的正则表达式 、QT跑JS语言

【QTJS】QT和JS 中的正则表达式 、QT跑JS语言 前言正则表达式QT 中的使用QRegExp自带的cap方法怎么用?QRegExp的非贪婪模式与贪婪模式 JS 中的使用 QT 跑JS 语言 前言 在看大佬的系统代码时候,对其中灵活用到的正则表达式和QT 跑JS 语言部分感觉很陌生&…

iOS App冷启动优化:二进制重排

原理 二进制文件中方法的加载顺序, 取决于方法在代码文件中的书写顺序,而不是调用顺序。 应用程序启动时会调用到的方法是有限的,但可能分散在很多个。 由于内存是分页管理的,要加载就要 整页加载。 这就导致很多完全还用不到的方…

C#知识点-18(多线程、同步、异步编程)

多线程 进程:一般指程序中运行的程序,实际作用是为程序再执行过程中创建好所需的环境和资源。 线程:是进程的一个实体,是cpu用来调度执行程序的最小单元,一个进程可以拥有多个线程。 单线程:进程中只有一…

mysql根据某字段分组查询,每组取前10个

mysql中有一个表叫policy,表的字段有id,title,time,spider_name等等,spider_name是爬虫名称,每个爬虫采集的数据都会有这个标识。请问如何根据spider_name爬虫名称,每一个种类获取10条数据&…

网站添加pwa操作和配置manifest.json后,没有效果排查问题

pwa技术官网:https://web.dev/learn/pwa 应用清单manifest.json文件字段说明:https://web.dev/articles/add-manifest?hlzh-cn Web App Manifest:Web App Manifest | MDN 当网站添加了manifest.json文件后,也引入到html中了&a…

FPGA-FIF0模型与应用场景(IP核)

什么是FIFO FIFO (First In First Out) ,也就是先进先出。FPGA或者ASIC中使用到的FIFO一般指的是对数据的存储具有先进先出特性的一个缓存器,常被用于数据的缓存或者高速异步数据的交互。它与普通存储器的区别是没有外部读写地址线,这样使用起来相对简单,但缺点就是只能顺序写…

python脚本实现全景站点欧拉角转矩阵

效果 脚本 import numpy as np import math import csv import os from settings import *def euler_to_rotation_matrix(roll, pitch, yaw):# 计算旋转矩阵# Z-Y-X转换顺序Rz

随想录算法训练营第四十五天|322.零钱兑换、279.完全平方数

322.零钱兑换 public class Solution {public int CoinChange(int[] coins, int amount) {int[] dpnew int [amount1];int maxint.MaxValue;for(int i0;i<dp.Length;i){dp[i]max;}dp[0]0;for(int i0;i<coins.Length;i){for(int jcoins[i];j<amount;j){if(dp[j-coins[…

leetcode hot100-2

给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。我的解法&#xff0c;是错误解法&#xff0c;只能通过 56 / 126 的测试用例 这个题就是想求&#xff0c;用到的所有字…

java多线程编程(学习笔记)入门

一、多线程创建的三种方式 (1)通过继承Thread本身 (2)通过实现runnable接口 (3)通过 Callable 和 Future 创建线程 其中&#xff0c;前两种不能获取到编程的结果&#xff0c;第三种能获取到结果 二、常见的成员方法 方法名称说明String getName()返回此线程的名称void setNam…

[数据集][目标检测]鸟类检测数据集VOC+YOLO格式11758张200类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;11758 标注数量(xml文件个数)&#xff1a;11758 标注数量(txt文件个数)&#xff1a;11758 标…

Docker之数据卷自定义镜像

文章目录 前言一、数据卷二、自定义镜像 前言 Docker提供了一个持久化存储数据的机制&#xff0c;与容器生命周期分离&#xff0c;从而带来一系列好处&#xff1a; 总的来说Docker 数据卷提供了一种灵活、持久、可共享的存储机制&#xff0c;使得容器化应用在数据管理方面更加…

Git 指令深入浅出【3】—— 远程仓库

Git 指令深入浅出【3】—— 远程仓库 一、远程仓库&#xff08;一&#xff09;基本指令1. 配置 SSH 密钥2. 推送远程仓库其他分支推送远程仓库方法1方法2建立分支链接 方法3 3. 合并分支请求 &#xff08;二&#xff09;.gitignore 忽略文件&#xff08;三&#xff09;标签管理…

MVCC【重点】

参考链接 [1] https://www.bilibili.com/video/BV1YD4y1J7Qq/?spm_id_from333.1007.top_right_bar_window_history.content.click&vd_source0cb0c5881f5c7d76e7580fbd2f551074 [2]https://www.cnblogs.com/jelly12345/p/14889331.html [3]https://xiaolincoding.com/mysql…