Linux下Docker基础命令(使用腾讯云镜像源)

devtools/2024/10/21 5:49:40/

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,简单的理解就是“轻量级的虚拟机”。

本文主要介绍在 CentOS 7.x 下,使用腾讯云服务器,结合腾讯云镜像源,了解Docker的基础命令。

卸载旧版本的 Docker

如果要安装新版本的 Docker ,可以先卸载掉旧版本(在保证不影响使用的情况下)。

# 列出系统中已安装的docker
yum list installed | grep docker# 卸载已安装的docker包(如上一步没有安装 Docker 则可跳过)
yum -y remove docker-ce-cli.x86_64
yum -y remove docker-ce.x86_64
yum -y remove containerd.io

安装 Docker

# 安装 Docker 所需的依赖
yum install -y yum-utils device-mapper-persistent-data lvm2# 添加 Docker 的 yum 源
yum-config-manager --add-repo https://mirrors.cloud.tencent.com/docker-ce/linux/centos/docker-ce.repo# yum 安装 Docker
yum install -y docker-ce docker-ce-cli containerd.io# 查看 Docker 版本
docker version

启动 Docker

# 执行以下命令启动 Docker
systemctl start docker# 然后将 Docker 设置为开机启动
systemctl enable docker# 查看 Docker 运行状态
service docker status# 可能返回以下内容,看到 active (running) 表示正在运行中
Redirecting to /bin/systemctl status docker.service
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Fri 2023-12-22 10:00:56 CST; 11s agoDocs: https://docs.docker.com

配置镜像加速

Docker 工作的基础即是镜像,可以认为一个镜像即是一个独立的由应用组成的虚拟机。docker 官方建立了 Docker Hub 来存贮镜像,但是由于网络原因, Docker Hub 的访问速度过慢,这里更换为腾讯云的镜像源地址。

# 创建 Docker 配置目录
mkdir -p /etc/docker# 配置 Docker 镜像加速源
vim /etc/docker/daemon.json# 输入以下内容后保存退出
{"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}# 重启守护进程并重启 Docker
systemctl daemon-reload && systemctl restart docker

拉取镜像并运行容器

docker run 命令用于从 Docker 镜像运行一个容器。

# 命令格式
docker run --name=容器名称 镜像名称# 命令示例
docker run --name=hello hello-world# 命令说明
--name=hello: 这个选项用于给容器指定一个名字,这里的名字是“hello”。
hello-world: 这是要运行的Docker镜像的名字。Docker会从本地或者Docker Hub上拉取这个镜像(如果本地没有的话),并基于这个镜像创建一个新的容器运行。# 可能返回以下内容,表示运行成功
Hello from Docker!
This message shows that your installation appears to be working correctly.

hello-world通常是一个非常简单的 Docker 镜像,用于演示 Docker 如何工作。它会输出一条欢迎消息,然后停止运行。

命令会直接拉取 hello-world 镜像,然后运行一个 hello 容器,当运行这个命令时,Docker会做以下几件事情:

1、检查本地是否有 hello-world 镜像,如果没有,它会尝试从 Docker Hub (本示例为腾讯软件源)下载。

2、基于 hello-world 镜像创建一个新的容器。

3、给这个新容器命名为“hello”。

4、运行这个容器。

hello-world 容器会执行其预定义的命令,容器执行完毕后会自动停止,Docker 常见示例,用于展示 Docker 的基本工作原理。

查看容器进程

docker ps 命令用于查看容器的进程

# 命令示例
docker ps -a# 可能返回以下内容,hello 容器已在运行
CONTAINER ID   IMAGE         COMMAND    CREATED         STATUS                     PORTS     NAMES
6272bfc3fc36   hello-world   "/hello"   2 minutes ago   Exited (0) 2 minutes ago             hello

拉取镜像

除了上述方式外,也可以通过 docker pull 命令拉取(下载)镜像,然后再手动运行。

# 命令格式
docker pull name[:tag]name:镜像名称
tag:特定标签,如不指定则表示为最新版本# 命令示例,拉取特定标签为 alpine 的 nginx 版本
docker pull nginx:alpine# 命令示例,拉取最新的 nginx 版本
docker pull nginx

查看现有镜像

docker images# 可能返回以下内容,包括 nginx 、hello-world
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
nginx         alpine    529b5644c430   8 weeks ago    42.6MB
hello-world   latest    d2c94e258dcb   7 months ago   13.3kB

创建容器

docker create 命令用于创建容器,镜像拉取成功后,根据镜像创建容器。

# 命令格式
docker create 参数 镜像名称#参数说明
–name :容器名字
-p:指定端口映射,主机(宿主)端口:容器端口,如80:80 表示该容器将 80 端口映射到主机 80 端口#命令示例
docker create --name=nginx_web -p 80:80 nginx# 查看容器进程
docker ps -a# 可能返回以下内容
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS                     PORTS     NAMES
bab8bb6d89ae   nginx         "/docker-entrypoint.…"   50 seconds ago   Created                              nginx_web
6272bfc3fc36   hello-world   "/hello"                 4 minutes ago    Exited (0) 4 minutes ago             hello

docker run 不同的是,docker create 创建出来的容器不会直接启动运行。

启动容器

docker start 命令用于启动容器

# 命令格式
docker start 容器名称# 命令示例
docker start nginx_web

因为本示例启动的是 nginx ,此时可以通过访问 http://ip 看到 nginx 的环境界面

停止容器

停止正在运行的容器有两种方法,docker stop 命令或者 docker kill 命令,区别在于,docker stop 会给时间让容器保存最后的运行状态,而 docker kill 则会直接关闭容器。

# 命令格式
docker stop 容器名称# 命令示例
docker stop nginx_web# 命令格式
docker kill 容器名称# 命令示例
docker kill nginx_web

删除容器

docker rm 命令可以删除指定的容器

# 命令格式
docker rm [参数] 容器名称# 参数说明
-f:强制停止并删除运行状态的容器# 命令示例,删除终止状态的容器
docker rm nginx_web# 命令示例,强制删除运行状态的容器
docker rm -f nginx_web# 查看容器进程确认结果
docker ps -a

删除指定镜像

docker rmi 命令用于删除指定的镜像

# 命令格式
docker rmi 镜像名称# 命令示例
docker rmi nginx# 查看镜像确认结果
docker images

删除所有镜像

通过 docker rmi 跟镜像 ID 来删除指定的镜像。

# 获取所有镜像 ID 
docker images -q# 通过镜像 ID 一次性删除所有镜像
docker rmi `docker images -q`# 查看镜像确认结果
docker images

以上内容仅是 docker 日常使用的基础命令及参数,更多内容可查阅相关资料。


http://www.ppmy.cn/devtools/105309.html

相关文章

Flask中的g的作用

Flask中的g对象是一个非常重要的概念,它在Flask应用程序的上下文中扮演着关键角色。下面我将详细阐述g对象的作用,但由于篇幅限制,无法达到5000字,但会尽量全面而精炼地介绍其关键特性和用途。 Flask中的g是什么? 在…

信息打点-系统篇端口扫描CDN服务负载均衡WAF防火墙

知识点: 1、获取网络信息-服务厂商&网络架构 2、获取服务信息-应用协议&内网资产 3、获取阻碍信息-CDN&WAF&负载均衡&防火墙 演示案例: 1、网络信息获取-服务厂商&网络架构 访问外网80端口,转发到内网80端口 2…

顺序结构存储的线性表操作【作业代码 1】

顺序结构存储的线性表操作 顺序结构存储的线性表是一种使用连续内存空间来存储元素的数据结构。在这种结构中,元素之间的相对位置通过物理存储位置直接反映出来,即元素在内存中的地址是连续的。下面,我们将基于您提供的代码片段,…

Sentinel-1 Level 1数据处理的详细算法定义(九)

《Sentinel-1 Level 1数据处理的详细算法定义》文档定义和描述了Sentinel-1实现的Level 1处理算法和方程,以便生成Level 1产品。这些算法适用于Sentinel-1的Stripmap、Interferometric Wide-swath (IW)、Extra-wide-swath (EW)和Wave模式。 今天介绍的内容如下&…

Spring 源码解读:实现Spring容器的启动流程

引言 Spring容器的启动流程是Spring框架中最为基础且重要的部分。通过对Spring容器的启动机制进行解读,我们可以更加清晰地理解Spring是如何管理Bean的生命周期、如何处理依赖注入等核心功能。本篇文章将通过手动实现一个简化的Spring容器启动流程,并与…

【全志H616】【开源】 ARM-Linux 智能分拣项目:阿里云、网络编程、图像识别

【全志H616】【开源】 ARM-Linux 智能分拣项目:阿里云、网络编程、图像识 文章目录 【全志H616】【开源】 ARM-Linux 智能分拣项目:阿里云、网络编程、图像识1、实现功能2、软件及所需环境3、逻辑流程图及简述3.1 完整逻辑流程图3.2 硬件接线3.3 功能简述…

exceljs操作手册

ExcelJS 读取,操作并写入电子表格数据和样式到 XLSX 和 JSON 文件。 一个 Excel 电子表格文件逆向工程项目。 安装 npm install exceljs新的功能! Merged fix: styles rendering in case when “numFmt” is present in conditional formatting rules (resolves…

kubectl陈述式资源管理方式、声明式资源管理

一、命令行: kubectl命令行工具 优点: 90%以上的场景都可以满足 对资源的增,删,查比较方便,对改不是很友好 缺点:命令比较冗长,复杂难记 声明方式:k8s当中的yaml文件实现资源管理----声明式 GUI:图形化工具的管理…