前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Docker入门】Docker基础命令

【Docker入门】Docker基础命令

原创
作者头像
参谋带个长
修改2024-01-02 19:08:51
3810
修改2024-01-02 19:08:51
举报

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 日常使用的基础命令及参数,更多内容可查阅相关资料。

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 卸载旧版本的 Docker
  • 安装 Docker
  • 启动 Docker
  • 配置镜像加速
  • 拉取镜像并运行容器
  • 查看容器进程
  • 拉取镜像
  • 查看现有镜像
  • 创建容器
  • 启动容器
  • 停止容器
  • 删除容器
  • 删除指定镜像
  • 删除所有镜像
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档