Docker的基础使用

一、Docker使用步骤(kali为例)

1.安装Docker

(1)更新系统包索引:

bash 复制代码
sudo apt-get update

(2)安装Docker:

bash 复制代码
sudo apt-get install docker.io

2.配置docker源:

{"registry-mirrors" :

"https://hub.littlediary.cn", "https://hub.xdark.top", "https://docker.kejilion.pro", "https://registry.dockermirror.com", "https://hub.rat.dev", "https://dhub.kubesre.xyz", "https://docker.nastool.de", "https://docker.m.daocloud.io", "https://noohub.ru", "https://huecker.io", "https://dockerhub.timeweb.cloud", "https://docker.rainbond.cc"

}

3.拉取CentOS 7像

bash 复制代码
sudo docker pull centos:

4.运行CentOS 7容器

bash 复制代码
sudo docker run -it --name my_centos7 centos:7 /bin/bash
  • sudo:以超级用户权限运行命令,通常在Linux系统中需要管理员权限来执行Docker命令。
  • docker run:Docker命令用来创建并启动一个新的容器。
  • -it:这是一个组合参数,-i 表示交互式操作,-t 分配一个伪终端。这两者一起使用,可以让您在命令行中与容器进行交互。
  • --name my_centos7:为新创建的容器指定一个名称,这里是 my_centos7
  • centos:7:指定要使用的Docker镜像,这里是 centos:7 镜像。
  • /bin/bash:指定容器启动后执行的命令,这里是启动bash shell。

5.运行Apache容器

bash 复制代码
docker container run -d --rm -p 8080:80 httpd
  • sudo:以超级用户权限运行命令,通常在Linux系统中需要管理员权限来执行Docker命令。
  • docker container run:Docker命令用来创建并启动一个新的容器。
  • -d:表示以"分离模式"运行容器,即在后台运行。
  • --rm:表示容器退出时自动清理容器文件系统,删除容器。
  • -p 8080:80:将容器内部的80端口映射到宿主机的8080端口。这意味着访问宿主机的8080端口时,实际上是访问容器内部的80端口。
  • httpd:指定要使用的Docker镜像名称,这里是 httpd 镜像,它是基于Apache HTTP Server的官方镜像。

执行这个命令后,Docker会做以下几件事情:

  1. 检查本地是否有 httpd 镜像,如果没有,则尝试从Docker Hub下载。
  2. 创建一个新的容器实例,使用指定的 httpd 镜像。
  3. 以分离模式启动容器,并将容器的80端口映射到宿主机的8080端口。
  4. 由于使用了 --rm 参数,当容器停止时,它将被自动删除。

二、Docker常用命令

  • 容器生命周期管理
    • 创建并启动容器
      • docker run:这是最常用的命令之一。例如,docker run -it ubuntu:latest /bin/bash。其中,-it表示以交互模式(-i)和终端模式(-t)运行容器,ubuntu:latest是使用的镜像,/bin/bash是在容器启动后执行的命令。这个命令会从本地拉取(如果不存在)ubuntu:latest镜像,然后在容器中启动一个bash终端,用户可以在其中执行 Ubuntu 系统的命令。
    • 启动已停止的容器
      • docker start:用于启动一个或多个已经停止的容器。例如,docker start container_idcontainer_id是容器的唯一标识符,可以通过docker ps -a命令获取)。
    • 停止容器
      • docker stop:用于正常停止一个运行中的容器。例如,docker stop container_id。它会发送一个SIGTERM信号给容器内的主进程,让容器有机会进行清理操作后再停止。
    • 重启容器
      • docker restart:重新启动一个容器。例如,docker restart container_id。它会先停止容器,然后再启动它。
    • 删除容器
      • docker rm:用于删除一个或多个已停止的容器。例如,docker rm container_id。如果要删除正在运行的容器,需要先停止它,或者使用-f选项强制删除(不推荐,可能导致数据丢失和容器内进程异常退出),如docker rm -f container_id
  • 容器操作与信息查看
    • 查看容器列表
      • docker ps:查看正在运行的容器。例如,docker ps会显示容器的 ID、镜像名称、创建时间、状态等信息。使用docker ps -a可以查看包括已停止容器在内的所有容器的信息。
    • 查看容器日志
      • docker logs:用于查看容器的日志信息。例如,docker logs container_id会显示容器内主进程的标准输出和标准错误输出的内容。可以使用-f选项来实时跟踪日志,就像tail -f命令一样,如docker logs -f container_id
    • 进入容器内部
      • docker exec:在运行的容器中执行命令。例如,docker exec -it container_id /bin/bash可以进入容器内部的bash终端,-it参数的作用和docker run中的类似,用于交互和终端模式。
    • 查看容器资源使用情况
      • docker stats:实时显示容器的资源使用情况,包括 CPU 使用率、内存使用量、网络 I/O 等。例如,docker stats container_id
  • 镜像管理
    • 拉取镜像
      • docker pull:从镜像仓库(如 Docker Hub)拉取镜像。例如,docker pull nginx:latest会拉取最新版本的nginx镜像。
    • 查看本地镜像列表
      • docker images:显示本地存储的所有镜像的详细信息,包括镜像 ID、仓库名称、标签、镜像大小等。例如,docker images
    • 删除本地镜像
      • docker rmi:用于删除本地镜像。例如,docker rmi image_idimage_id是镜像的唯一标识符,可以通过docker images命令获取)。如果要删除带有标签的镜像,也可以使用docker rmi image_name:tag的形式。
  • 容器网络管理
    • 查看容器网络信息
      • docker network ls:列出所有的 Docker 网络。例如,docker network ls会显示网络的名称、ID、驱动类型等信息。
    • 创建自定义网络
      • docker network create:用于创建一个新的网络。例如,docker network create my_network会创建一个名为my_network的网络,可以将容器连接到这个网络中,以实现容器间的通信等功能。
    • 将容器连接到网络
      • docker network connect:将一个容器连接到指定的网络。例如,docker network connect my_network container_id会将container_id对应的容器连接到my_network网络。
相关推荐
Zfox_5 分钟前
CANN Catlass 算子模板库深度解析:高性能 GEMM 融合计算、Cube Unit Tiling 机制与编程范式实践
docker·云原生·容器·eureka
威迪斯特37 分钟前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.42 分钟前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔1 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
m0_694845571 小时前
tinylisp 是什么?超轻量 Lisp 解释器编译与运行教程
服务器·开发语言·云计算·github·lisp
ONE_SIX_MIX1 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞051 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
春日见1 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
ESBK20251 小时前
第四届移动互联网、云计算与信息安全国际会议(MICCIS 2026)二轮征稿启动,诚邀全球学者共赴学术盛宴
大数据·网络·物联网·网络安全·云计算·密码学·信息与通信
DARLING Zero two♡1 小时前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器