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网络。
相关推荐
BillKu10 分钟前
Linux设置Nginx开机启动
linux·运维·nginx
东方佑14 分钟前
FastHTML快速入门:服务器渲染超媒体应用的利器
运维·服务器
baidu_3755288132 分钟前
光感传感器 芯片stk3171 linux驱动程序
linux·运维·服务器
飞腾开发者41 分钟前
飞腾平台Arm NN软件栈安装使用指南
linux·运维·人工智能·机器学习·计算机视觉
x2lab42 分钟前
国产化 ARM 环境mysql-mariadb 部署
arm开发·mysql·docker·mariadb
鸠摩智首席音效师1 小时前
.NET Core 应用程序如何在 Linux 中创建 Systemd 服务 ?
linux·运维·.netcore
汤米粥1 小时前
通过PHP创建AWS的CloudFront并绑定证书添加备用域名
服务器·云计算·aws
叫我龙翔2 小时前
【计网】实现reactor反应堆模型 --- 多线程方案优化 ,OTOL方案
linux·运维·网络
mit6.8242 小时前
[Docker#9] 存储卷 | Volume、Bind、Tmpfs | -v/mount | MySQL 灾难恢复 | 问题
linux·运维·docker·容器·架构
qq_167401512 小时前
Docker 组添加用户,设置允许普通用户操作 docker
docker·容器