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

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

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

卸载旧版本的 Docker

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

bash 复制代码
# 列出系统中已安装的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

bash 复制代码
# 安装 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

bash 复制代码
# 执行以下命令启动 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 Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-12-22 10:00:56 CST; 11s ago
     Docs: https://docs.docker.com

配置镜像加速

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

bash 复制代码
# 创建 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 镜像运行一个容器。

bash 复制代码
# 命令格式
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 命令用于查看容器的进程

bash 复制代码
# 命令示例
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 命令拉取(下载)镜像,然后再手动运行。

bash 复制代码
# 命令格式
docker pull name[:tag]

name:镜像名称
tag:特定标签,如不指定则表示为最新版本

# 命令示例,拉取特定标签为 alpine 的 nginx 版本
docker pull nginx:alpine

# 命令示例,拉取最新的 nginx 版本
docker pull nginx

查看现有镜像

bash 复制代码
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 命令用于创建容器,镜像拉取成功后,根据镜像创建容器。

bash 复制代码
# 命令格式
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 命令用于启动容器

bash 复制代码
# 命令格式
docker start 容器名称

# 命令示例
docker start nginx_web

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

停止容器

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

bash 复制代码
# 命令格式
docker stop 容器名称

# 命令示例
docker stop nginx_web

# 命令格式
docker kill 容器名称

# 命令示例
docker kill nginx_web

删除容器

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

bash 复制代码
# 命令格式
docker rm [参数] 容器名称

# 参数说明
-f:强制停止并删除运行状态的容器

# 命令示例,删除终止状态的容器
docker rm nginx_web

# 命令示例,强制删除运行状态的容器
docker rm -f nginx_web

# 查看容器进程确认结果
docker ps -a

删除指定镜像

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

bash 复制代码
# 命令格式
docker rmi 镜像名称

# 命令示例
docker rmi nginx

# 查看镜像确认结果
docker images

删除所有镜像

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

bash 复制代码
# 获取所有镜像 ID 
docker images -q

# 通过镜像 ID 一次性删除所有镜像
docker rmi `docker images -q`

# 查看镜像确认结果
docker images

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

相关推荐
AOwhisky12 分钟前
Kubernetes 学习笔记:集群管理、命名空间与 Pod 基础
linux·运维·笔记·学习·云原生·kubernetes
小龙在慢慢变强..1 小时前
目录结构(FHS 标准)
linux·运维·服务器
2035去旅行1 小时前
嵌入式开发,如何选择C标准库
linux·arm开发
刘延林.1 小时前
win11系统下通过 WSL2 安装Ubuntu 24.04 使用RTX 5080 GPU
linux·运维·ubuntu
星恒讯工业路由器1 小时前
星恒讯工业生产自动化解决方案
运维·物联网·自动化·智能路由器·信息与通信
a8a3021 小时前
Laravel9.x新特性全解析
运维·spring boot·nginx
beyond阿亮1 小时前
IEC104 Client Simulator - IEC104 主站/客户端模拟器 仿真器免费使用教程
运维·服务器·网络
(Charon)2 小时前
【C++/Qt】Qt 封装 TCP 客户端底层 Network 类:连接、收发、自动测试与错误处理
服务器·网络·qt·tcp/ip
熊猫钓鱼>_>2 小时前
当“虾”遇上“马”:QClaw 融合 Hermes 背后的智能体进化论
人工智能·ai·腾讯云·agent·openclaw·qclaw·hermes
Agent产品评测局2 小时前
生产排期与MES/ERP系统打通,实操方法详解:2026企业级智能体与超自动化集成实战指南
运维·人工智能·ai·chatgpt·自动化