Docker容器的基础命令操作大全(入门必看)

本指南将带您深入了解Docker的基本操作,包括镜像的管理、容器的创建与删除,以及如何高效地使用Docker进行开发和部署。通过这些内容,您将掌握Docker的核心概念,为未来的项目奠定坚实的基础。让我们一起开启这段探索之旅,发现Docker带来的无限可能!

1.搜索镜像a

bash 复制代码
 docker search httpd  

2.获取镜像

命令格式:

docker pull 仓库名称[标签]

下载镜像httpd

docker pull httpd

实例:

plain 复制代码
[root@localhost ~]# docker pull httpd
Using default tag: latest
latest: Pulling from library/httpd
e4fff0779e6d: Already exists 
1d0292c3dcd2: Already exists 
4f4fb700ef54: Already exists 
1316399d8fbf: Already exists 
b4cc6570db82: Already exists 
fd1a778092db: Already exists 
Digest: sha256:3f71777bcfac3df3aff5888a2d78c4104501516300b2e7ecb91ce8de2e3debc7
Status: Downloaded newer image for httpd:latest

3.查看已下载镜像

命令格式

docker images 仓库名称:[标签]

实例:

plain 复制代码
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
httpd        latest    a49fd2c04c02   4 weeks ago   148MB
nginx        latest    900dca2a61f5   7 weeks ago   188MB

单独查看某个镜像

plain 复制代码
docker images httpd:latest

REPOSITORY   TAG              CREATED       SIZE
httpd        latest    a49fd2c04c02   4 weeks ago   148MB
查看镜像详情

docker inspect a49fd2c04c02(IMAGE ID号)

镜像的详细信息中包括创建时间、系统版本、主机名、域名、用户、卷、标签、操作系统,设备 ID等各种信息。

3.修改标签

可以用 dockertag 命令来为本地的镜像添加新的标签

语法格式

docker tag httpd:旧标签 httpd:新标签

实例:

plain 复制代码
[root@localhost ~]# docker tag httpd:latest httpd:mytag
[root@localhost ~]# docker images httpd:latest
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
httpd        latest    a49fd2c04c02   4 weeks ago   148MB
[root@localhost ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
httpd        latest    a49fd2c04c02   4 weeks ago   148MB
httpd        mytag     a49fd2c04c02   4 weeks ago   148MB
nginx        latest    900dca2a61f5   7 weeks ago   188MB


httpd:latest 是原始标签。
httpd:mytag 是你新添加的标签。

这两个标签都指向同一个镜像 ID,因此它们共享相同的内容和大小。

你可以使用这两个标签来运行相同的镜像。

plain 复制代码
docker run httpd:latest
docker run httpd:mytag

4.删除镜像(两种)

使用docker rmi命令删除镜像

镜像ID删除

你可以使用镜像的 ID 来删除镜像。例如:

plain 复制代码
docker rmi a49fd2c04c02

需要注意的是:

如果镜像被多个标签引用

强制删除镜像

如果你确定要删除该镜像,可以使用 -f选项强制删除:

plain 复制代码
docker rmi -f a49fd2c04c02

也可以删除标签,然后在通过镜像ID删除

标签删除

你也可以使用镜像的名称和标签来删除镜像。例如:

plain 复制代码
docker rmi httpd:latest
docker rmi httpd:mytag
注意事项

当一个镜像有多个标签的时候,docker rmi 命令只是删除该镜像多个标签中的指定标签,不会影响镜像文件,相当于只是删除了镜像的一个标签而已。

docker ps -a

5.存出镜像

语法格式

bash 复制代码
docker save -o <保存的文件名>.tar <镜像名>:<标签>

实例如下:

存出镜像/dmk

使用 docker save 命令将镜像保存为一个 tar 文件

plain 复制代码
[root@localhost ~]# docker save -o httpd.tar httpd:mytag
[root@localhost ~]# ll
总用量 148616
-rw-------. 1 root root 152180736 8月  15 14:56 httpd.tar

//这条命令会将 httpd:latest 镜像保存为名为 myimage.tar 的文件。

6.载入镜像

语法格式

使用 docker load 命令从 tar 文件中加载镜像:

bash 复制代码
docker load -i <文件名>.tar

实例:

首先需要删除镜像,然后进行恢复

例如,从 httpd.tar 文件中导入镜像,可以使用

bash 复制代码
docker load -i httpd.tar

查看是否成功

bash 复制代码
docker images

总结

导出镜像

bash 复制代码
docker save -o <文件名>.tar <镜像名>:<标签>

导入镜像

bash 复制代码
docker load -i <文件名>.tar

Docker容器操作

1.创建容器

plain 复制代码
[root@localhost ~]# docker create -it --name web01 -p 80:80 httpd:latest /bin/bash
a68edea9638730c70363e7a32d9b3a3b21e7938d39343abdd5a2d9a9babd8c39

参数解释docker create : 创建一个新容器,但不启动它。-it : 以交互模式运行容器,并分配一个伪终端。--name web01 : 为容器指定名称为 web01。-p 80:80 : 将主机的 80 端口映射到容器的 80 端口。httpd:latest : 使用 httpd 镜像的最新版本。/bin/bash: 指定容器启动时执行的命令。

2.启动容器

plain 复制代码
[root@localhost ~]# docker start web01  /或者ID
web01
[root@localhost ~]# docker ps 
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS                               NAMES
a68edea96387   httpd:latest   "/bin/bash"   3 minutes ago   Up 3 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   web0

关闭容器

bash 复制代码
docker stop web01 /或者ID

3.创建并开启

bash 复制代码
docker run -d --name nginx-do -p 80:80 nginx

-d :在后台运行容器(分离模式)。--name nginx-do :为容器指定一个名称(可选)。-p 80:80 :将主机的 80 端口映射到容器的 80 端口。

4.容器的进入

  • 进入容器

要进入正在运行的容器,您可以使用 docker exec 命令。

基本语法如下:

bash 复制代码
docker exec -it <容器名称或ID> /bin/bash

实例

假设您有一个名为 nginx 的容器,可以通过以下命令进入

plain 复制代码
docker exec -it nginx-do /bin/bash
root@2ee5e3023732:/# ls
bin  boot  dev  docker-entrypoint.d  docker-entrypoint.sh  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

5.导出容器

要导出一个容器的文件系统,可以使用 docker export 命令。此命令将容器的文件系统导出为一个 tar 文件。

示例

假设您要导出名为 nginx-do的容器

plain 复制代码
[root@localhost ~]# docker export nginx-do > nginx-do.tar
[root@localhost ~]# ls
httpd.tar  nginx-do.tar

这将创建一个名为 nginx-do.tar 的文件,包含容器的文件系统。

6.导入容器

要从一个 tar 文件导入容器,可以使用 docker import 命令。此命令将 tar 文件导入为一个新的镜像。

示例

假设您要从 nginx-do.tar 文件导入一个新的镜像:

bash 复制代码
cat nginx-do.tar | docker import - nginx:latest

这将创建一个名为 nginx:latest的新镜像。

7.容器的删除

在 Docker 中,删除容器可以通过 docker rm 命令进行。

  • 查看当前容器

首先,您可以查看当前所有容器(包括运行中的和已停止的):

bash 复制代码
docker ps -a
  • 删除已停止的容器

要删除一个已停止的容器,可以使用以下命令:

bash 复制代码
docker rm <容器名称或ID>

示例如果您要删除名为 nginx-do 的容器:

bash 复制代码
docker rm nginx-do
  • 强制删除正在运行的容器

如果您需要删除一个正在运行的容器,可以使用 -f(或 --force)选项强制删除:

bash 复制代码
docker rm -f <容器名称或ID>

示例强制删除正在运行的 nginx-do 容器:

bash 复制代码
docker rm -f nginx-do
  • 删除多个容器您也可以一次性删除多个容器,只需在命令中列出容器名称或 ID:
bash 复制代码
docker rm <容器1> <容器2> ...

示例

bash 复制代码
docker rm nginx-do nginx-other
  • 删除所有已停止的容器
  • 如果您想要删除所有已停止的容器,可以使用以下命令:
bash 复制代码
docker container prune
  • 这将提示您确认是否要删除所有已停止的容器。

注意事项

确保您不再需要容器中的数据,因为删除容器后,容器的文件系统及其数据将永久丢失。如果容器是基于某个镜像创建的,删除容器不会影响该镜像

总结

Docker是一种强大的容器化技术,极大地简化了应用程序的开发、测试和部署流程。通过使用Docker,开发者可以轻松地创建、管理和共享容器化应用,确保在不同环境中的一致性。

成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"

"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"

相关推荐
幽兰的天空1 小时前
介绍 HTTP 请求如何实现跨域
网络·网络协议·http
lisenustc1 小时前
HTTP post请求工具类
网络·网络协议·http
心平气和️1 小时前
HTTP 配置与应用(不同网段)
网络·网络协议·计算机网络·http
huosenbulusi1 小时前
helm推送到harbor私有库--http: server gave HTTP response to HTTPS client
云原生·容器·k8s
心平气和️2 小时前
HTTP 配置与应用(局域网)
网络·计算机网络·http·智能路由器
qzhqbb2 小时前
web服务器 网站部署的架构
服务器·前端·架构
不会飞的小龙人2 小时前
Docker Compose创建镜像服务
linux·运维·docker·容器·镜像
不会飞的小龙人2 小时前
Docker基础安装与使用
linux·运维·docker·容器
Mbblovey2 小时前
Picsart美易照片编辑器和视频编辑器
网络·windows·软件构建·需求分析·软件需求
张3蜂3 小时前
docker Ubuntu实战
数据库·ubuntu·docker