0
点赞
收藏
分享

微信扫一扫

Docker 入门介绍及简单使用

1. `docker run -d --name my_container -p 8080:80 my_image`  

   这条命令会创建并启动一个后台运行的容器,其中`-d`代表以守护进程方式运行,`--name`用于指定容器名称,`-p`用于端口映射,将宿主机的8080端口映射到容器的80端口,`my_image`是指定的镜像名称。

 

2. `docker ps -a`  

   使用`docker ps`命令可以列出当前运行的容器,`-a`参数会显示所有容器(包括已停止的)。

 

3. `docker stop my_container`  

   该命令用于停止一个名为`my_container`的容器,`docker stop`后接容器ID或名称。

 

4. `docker start my_container`  

   如果一个容器被停止了,使用`docker start`命令可以重新启动它。

 

5. `docker exec -it my_container /bin/bash`  

   执行该命令可以在运行中的容器`my_container`内启动一个交互式bash shell,`-it`参数是为了分配一个伪终端。

 

6. `docker build -t my_new_image .`  

   使用`docker build`命令可以构建一个新的镜像,`-t`用于指定新镜像的名称,`.`表示使用当前目录下的Dockerfile文件进行构建。

 

7. `docker pull my_image`  

   通过`docker pull`命令可以从Docker Hub拉取一个已存在的镜像到本地。

 

8. `docker push my_image`  

   如果有一个已标记的镜像想要推送到Docker Hub,可以使用`docker push`命令。

 

9. `docker images`  

   该命令用于列出本地存储的所有镜像。

 

10. `docker rm -f $(docker ps -aq)`  

    这是一个清理命令,用于删除所有容器。`-f`参数表示强制删除,`$(docker ps -aq)`会获取所有容器的ID并作为`docker rm`的参数。

11. `docker logs my_container`  
    此命令用于获取容器`my_container`的日志输出。这对于调试和监控容器的行为非常有用,可以帮助你了解应用程序在容器内的运行状况。

12. `docker network create my_network`  
    使用这个命令可以创建一个新的Docker网络`my_network`。网络是容器之间以及容器与外部世界通信的重要组成部分。

13. `docker network ls`  
    列出Docker主机上存在的所有网络。这对于管理和理解容器网络非常有用,尤其是当你有多个网络时。

14. `docker attach my_container`  
    该命令允许你附加到一个正在运行的容器上,这样你就可以直接与容器的进程交互。这对于实时监控和交互非常有用。

15. `docker cp my_container:/path/to/file /path/on/host`  
    Docker的`cp`命令允许你从容器内部复制文件到宿主机,或者从宿主机复制文件到容器内部。这个例子展示了如何从容器复制文件到宿主机。

16. `docker inspect my_image`  
    `docker inspect`命令用于获取Docker对象的底层信息,例如镜像、容器、网络等。这对于了解对象的详细信息和状态非常有用。

17. `docker rmi -f my_image`  
    使用这个命令可以强制删除一个镜像。`-f`参数表示强制删除,`my_image`是你想要删除的镜像名称。这个命令在你确定不再需要某个镜像时非常有用。

18. `docker create --name my_new_container my_image`  
    `docker create`命令用于创建一个新的容器,但不启动它。这个命令在你想要预先配置容器,然后在适当的时候启动它时非常有用。

19. `docker update --restart=unless-stopped my_container`  
    `docker update`命令用于更新容器的配置。在这个例子中,我们使用`--restart`标志来设置容器的重启策略,`unless-stopped`意味着容器将在退出时重启,除非它被手动停止。

20. `docker save -o my_image.tar my_image`  
    使用`docker save`命令可以将本地镜像保存为tar归档文件。这对于镜像的备份和迁移非常有用。在这个例子中,`-o`参数后面跟的是输出文件的路径和名称。

这些命令覆盖了Docker容器和镜像的基本操作,包括创建、启动、停止、查看日志、网络管理等。在使用这些命令时,请确保你了解每个命令的具体作用和潜在的风险,以避免不必要的错误和数据丢失。

21. `docker volume create my_volume`  
    此命令用于创建一个新的Docker卷`my_volume`。Docker卷是一种数据持久化机制,可以用来存储和共享容器间的数据。

22. `docker run -v my_volume:/path/in/container -d my_image`  
    在运行容器时使用`-v`参数可以将Docker卷挂载到容器内的指定路径。这个命令将`my_volume`挂载到容器内的`/path/in/container`路径。

23. `docker volume inspect my_volume`  
    使用`docker volume inspect`命令可以查看卷的详细信息,包括卷的名称、驱动、挂载点等。

24. `docker network connect my_network my_container`  
    此命令用于将容器`my_container`连接到网络`my_network`。这对于容器间的通信和微服务架构非常有用。

25. `docker logs -f my_container`  
    `-f`参数用于跟踪容器的实时日志输出。这对于监控应用程序的实时运行状况和调试问题非常有用。

26. `docker exec -d --name my_service my_container sh -c "some_command"`  
    这条命令在已运行的容器`my_container`中启动一个后台服务`my_service`,并执行`some_command`。这对于在容器内启动长期运行的进程非常有用。

27. `docker build --build-arg BUILD_NUMBER=123 .`  
    在构建镜像时,可以使用`--build-arg`参数传递构建参数。这个命令在构建过程中设置了一个名为`BUILD_NUMBER`的参数,值为`123`。

28. `docker tag my_image:tag1 my_image:tag2`  
    使用`docker tag`命令可以为镜像添加新的标签。这个命令为`my_image`镜像添加了两个标签:`tag1`和`tag2`。

29. `docker info`  
    `docker info`命令提供了关于Docker守护进程和其主机的详细信息,包括系统状态、镜像、容器、存储和网络信息。

30. `docker system prune`  
    此命令用于清理所有未使用的资源,包括停止的容器、无用网络、无用镜像(无标签)等。这对于释放磁盘空间和保持系统整洁非常有用。

这些命令进一步扩展了Docker的功能,包括数据卷的使用、实时日志跟踪、后台服务的执行、构建参数的传递、标签管理以及系统资源的清理。掌握这些命令可以帮助你更高效地使用Docker进行容器化应用的开发、部署和管理。记得在使用这些命令时,要根据实际情况和需求进行调整和优化。

 

31. `docker-compose up`  
    使用`docker-compose up`命令可以启动在`docker-compose.yml`文件中定义的所有服务。这是一个非常实用的命令,特别是当你有一个由多个容器组成的复杂应用时,它可以帮助你快速启动整个应用栈。

32. `docker-compose down`  
    与`docker-compose up`相对应,`docker-compose down`命令用于停止并移除由`docker-compose.yml`文件定义的所有容器、网络和卷。这个命令在你需要清理整个应用栈时非常有用。

33. `docker-compose build`  
    此命令用于根据`docker-compose.yml`文件中定义的服务构建或重新构建服务的镜像。它会自动读取`build`部分的配置,并根据这些配置来构建镜像。

34. `docker-compose pull`  
    使用`docker-compose pull`命令可以拉取`docker-compose.yml`文件中定义的所有服务的最新镜像。这在你想要确保使用最新版本的服务镜像时非常有用。

35. `docker-compose push`  
    `docker-compose push`命令用于推送`docker-compose.yml`文件中定义的所有服务的镜像到远程仓库。这在你想要分享或部署服务镜像时非常有用。

36. `docker-compose stop`  
    此命令用于停止由`docker-compose.yml`文件启动的所有容器,但不会移除它们。这在你想要暂停应用栈而不删除任何数据时非常有用。

37. `docker-compose restart`  
    使用`docker-compose restart`命令可以重启由`docker-compose.yml`文件管理的所有容器。这对于重新加载配置或更新后的应用程序非常有用。

38. `docker-compose logs`  
    `docker-compose logs`命令用于获取由`docker-compose.yml`文件定义的单个服务或所有服务的日志。这对于监控和调试服务的运行状况非常有用。

39. `docker-compose scale service=3`  
    此命令用于扩展`docker-compose.yml`文件中定义的某个服务的副本数量。在这个例子中,`service`服务的副本数量被扩展到3个。

40. `docker-compose config`  
    使用`docker-compose config`命令可以验证`docker-compose.yml`文件的配置是否正确,并且会显示服务、网络、卷等的详细信息。

这些命令围绕`docker-compose`工具展开,它是一个用于定义和运行多容器Docker应用的工具。通过`docker-compose`,你可以以一个单一的命令来启动和管理整个应用栈,这极大地简化了多容器应用的部署和管理过程。掌握这些命令将帮助你更有效地使用Docker和`docker-compose`来构建、测试和部署你的应用。

41. `docker inspect --help`  

    这个命令用于获取`docker inspect`命令的帮助信息,了解其可用的选项和用法。`docker inspect`是一个非常强大的命令,它可以提供关于Docker对象(如容器、镜像、网络和卷)的详细信息。

 

42. `docker system prune -a`  

    此命令用于清理所有未使用的资源,包括停止的容器、无用网络、无用镜像(无标签)以及悬空的卷。`-a`或`--all`选项表示也会删除所有未使用的卷。

 

43. `docker attach my_container`  

    使用`docker attach`命令可以附加到一个正在运行的容器上。这允许你与容器内的进程进行交互,例如查看实时输出或与容器内的应用程序进行交互。

 

44. `docker update --cpus="2.0" my_container`  

    `docker update`命令用于更新容器的配置。在这个例子中,我们使用`--cpus`参数来限制容器可以使用的CPU资源。这有助于在多任务环境中进行资源分配和限制。

 

45. `docker network disconnect my_network my_container`  

    此命令用于将容器从网络中断开连接。这在你想要隔离容器或重新配置网络时非常有用。

 

46. `docker logs --since 1h my_container`  

    使用`docker logs`命令的`--since`选项可以获取指定时间范围内的日志。在这个例子中,我们获取了过去1小时内`my_container`容器的日志。

 

47. `docker build --progress=plain .`  

    在构建镜像时,`--progress`选项指定了进度输出的格式。`plain`选项表示输出简单的进度信息,这对于在不支持ANSI转义字符的环境中查看构建进度非常有用。

 

48. `docker push --all-tags`  

    使用`docker push`命令的`--all-tags`选项可以推送一个镜像的所有标签到远程仓库。这在你想要确保所有版本的镜像都能被共享时非常有用。

 

49. `docker rmi $(docker images -q -f "dangling=true")`  

    这个命令组合用于清理所有悬挂的镜像(dangling images),这些是一些不再被任何容器使用的镜像层。这有助于释放磁盘空间。

 

50. `docker cp my_container:/path/in/container /path/on/host`  

    `docker cp`命令可以在容器和宿主机之间复制文件或目录。在这个例子中,我们从容器`my_container`内复制文件到宿主机的指定路径。

 

这些命令进一步扩展了Docker的功能,包括获取帮助信息、资源限制、容器操作、日志管理、镜像清理和文件传输等。掌握这些命令可以帮助你更深入地理解和使用Docker,从而更有效地管理你的容器化应用。在使用这些命令时,请确保你了解每个命令的具体作用和潜在的风险,以避免不必要的错误和数据丢失。

 

51. `docker stats`  

    这个命令提供了一个实时的容器资源使用情况概览,包括CPU、内存、网络IO和块IO等信息。这对于监控容器性能和资源使用情况非常有用。

 

52. `docker top my_container`  

    使用`docker top`命令可以查看在指定容器`my_container`内运行的进程。这对于分析和调试容器内部的应用程序非常有用。

 

53. `docker build --build-arg HTTP_PROXY=http://proxy.example.com .`  

    在构建镜像时,可以使用`--build-arg`参数来设置构建时的环境变量。在这个例子中,我们设置了一个HTTP代理,这在你需要通过代理服务器访问外部资源时非常有用。

 

54. `docker network create --driver bridge my_bridge_network`  

    创建一个新的网络`my_bridge_network`,并指定其驱动为`bridge`。这允许你创建自定义网络,以便更好地控制容器间的通信。

 

55. `docker container update --memory=2g my_container`  

    使用`docker container update`命令可以更新运行中容器的配置。在这个例子中,我们将容器的内存限制设置为2GB。

 

56. `docker image history my_image`  

    `docker image history`命令用于查看镜像的构建历史和变更记录。这对于了解镜像的来源和构建过程非常有用。

 

57. `docker system df`  

    这个命令提供了Docker系统的空间使用情况概览,包括镜像、容器、卷和网络的空间占用。

 

58. `docker run --cap-add=NET_ADMIN my_image`  

    使用`--cap-add`参数可以给容器添加特定的Linux能力。在这个例子中,我们给容器添加了`NET_ADMIN`能力,这允许容器执行一些需要特权的网络操作。

 

59. `docker container ls --latest`  

    使用`--latest`参数可以列出最近创建或运行的容器。这对于快速找到并管理最新的容器实例非常有用。

 

60. `docker image tag --force my_image:latest my_image:newtag`  

    使用`docker image tag`命令可以给镜像添加新的标签,或者强制覆盖已有的标签。在这个例子中,我们将`my_image:latest`的标签强制更改为`my_image:newtag`。

 

这些命令提供了更多的Docker操作和管理选项,涵盖了性能监控、进程查看、构建环境配置、网络配置、资源更新、历史追踪、空间管理等方面。通过熟练使用这些命令,你可以更加高效地管理和维护你的Docker环境,确保应用的稳定性和性能。记得在使用这些命令时,应谨慎操作,避免不必要的资源损失或系统安全风险。

 

 

61. `docker run --network=host my_image`  

    此命令运行一个容器,并使用`--network=host`选项使得容器共享宿主机的网络命名空间。这允许容器直接使用宿主机的网络堆栈,适用于某些需要紧密集成网络操作的场景。

 

62. `docker create --tty --interactive my_image`  

    使用`docker create`命令创建一个新容器,并通过`--tty`和`--interactive`选项为容器分配一个伪终端并保持标准输入开启。这对于创建需要交互式会话的容器非常有用。

 

63. `docker inspect --type=image my_image`  

    通过`docker inspect`命令并使用`--type=image`选项,可以获取指定镜像的详细信息。这有助于了解镜像的结构和配置,以便更好地管理和使用镜像。

 

64. `docker container stop $(docker container ls -aq)`  

    这个命令组合用于停止所有正在运行的容器。`docker container ls -aq`列出所有容器的ID,然后`docker container stop`命令将它们停止。

 

65. `docker container rm -f $(docker container ls -aq -f "status=exited")`  

    类似于上一个命令,这个命令组合用于强制删除所有已退出的容器。`docker container ls -aq -f "status=exited"`列出所有已退出的容器ID,然后`docker container rm -f`命令将它们删除。

 

66. `docker pull --all-tags my_image`  

    使用`docker pull`命令的`--all-tags`选项可以拉取指定镜像的所有标签。这确保你拥有该镜像的所有版本,对于需要特定版本的场景非常有用。

 

67. `docker push --quiet my_image`  

    `docker push --quiet`命令用于将镜像推送到远程仓库,并使用`--quiet`选项以静默模式运行,只输出错误信息。这有助于在脚本中使用,减少不必要的输出。

 

68. `docker run --entrypoint=/bin/sh my_image`  

    使用`--entrypoint`选项可以覆盖镜像的默认入口点。在这个例子中,我们将入口点更改为`/bin/sh`,这允许我们以不同的方式运行容器。

 

69. `docker exec --user=1000 my_container /bin/bash`  

    使用`docker exec`命令并在`--user`选项中指定用户ID,可以以指定用户的身份运行命令。在这个例子中,我们以用户ID为1000的用户身份在容器`my_container`中启动bash。

 

70. `docker logs --tail=100 my_container`  

    使用`docker logs`命令的`--tail`选项可以获取容器日志的最后100行输出。这对于查看容器最近的活动或错误信息非常有用。

 

这些命令进一步增强了Docker的灵活性和控制能力,涵盖了网络配置、容器交互、镜像管理、日志查看等多个方面。掌握这些命令可以帮助你更深入地理解Docker的工作原理,更有效地管理和维护你的容器化环境。在使用这些命令时,请确保你了解每个命令的具体作用和潜在的影响,以避免不必要的错误和风险。

71. `docker run --mount type=bind,source=/path/on/host,target=/path/in/container my_image`  
    此命令使用 `--mount` 选项将宿主机上的目录或文件挂载到容器中。在这个例子中,我们将宿主机的 `/path/on/host` 目录挂载到容器的 `/path/in/container` 路径。这种绑定挂载允许容器与宿主机之间共享数据。

72. `docker run --memory-swap=512m my_image`  
    使用 `--memory-swap` 选项可以为容器设置内存和交换文件的总量。在这个例子中,我们为容器设置了最大 512MB 的内存和交换空间。这有助于控制容器的资源使用,防止单个容器消耗过多系统资源。

73. `docker container wait my_container`  
    `docker container wait` 命令用于等待容器停止运行。这对于在容器执行长时间运行的任务时,确保任务完成后再进行其他操作非常有用。

74. `docker network create --subnet=172.28.0.0/16 my_custom_network`  
    使用 `docker network create` 命令并指定 `--subnet` 选项可以创建一个具有特定IP地址范围的自定义网络。这在需要精细控制容器网络配置时非常有用。

75. `docker image rm --force my_image`  
    使用 `docker image rm` 命令并加上 `--force` 选项可以强制删除一个镜像,即使它被容器使用。这在你确定镜像不再需要时非常有用。

76. `docker container ls --filter "status=running"`  
    使用 `--filter` 选项可以列出特定状态的容器。在这个例子中,我们只显示当前正在运行的容器。

77. `docker exec --workdir /path/in/container my_container /bin/sh`  
    使用 `docker exec` 命令并加上 `--workdir` 选项可以指定容器内的工作目录。这在你想要在特定目录下执行命令时非常有用。

78. `docker pull --quiet my_image:tag`  
    使用 `docker pull --quiet` 命令可以静默地拉取一个镜像的特定标签。这有助于在脚本中自动化镜像更新过程,同时减少输出信息。

79. `docker system events`  
    `docker system events` 命令用于实时查看Docker守护进程的事件流。这对于监控Docker守护进程的活动和调试问题非常有用。

80. `docker container top my_container`  
    `docker container top` 命令用于查看在指定容器内运行的进程的实时快照。这对于了解容器内部的进程状态和资源使用情况非常有用。

这些命令进一步扩展了Docker的功能,包括数据共享、资源限制、网络自定义、状态过滤、强制操作、工作目录设置、事件监控等方面。通过熟练使用这些命令,你可以更加高效地管理和维护你的Docker环境,确保应用的稳定性和性能。在使用这些命令时,请确保你了解每个命令的具体作用和潜在的影响,以避免不必要的错误和风险。

81. `docker image build --file=Dockerfile.custom -t my_custom_image .`  

    使用 `docker image build` 命令并指定 `--file` 选项可以构建一个自定义的 Dockerfile 文件。在这个例子中,我们使用 `Dockerfile.custom` 作为构建基础,而不是默认的 `Dockerfile`。这允许你根据不同的需求定制镜像构建过程。

 

82. `docker container run --detach-keys=ctrl-q,ctrl-c my_container`  

    使用 `--detach-keys` 选项可以在运行容器时定义从前台切换到后台的快捷键。在这个例子中,我们设置 `ctrl-q` 和 `ctrl-c` 作为快捷键。这使得你可以在不停止容器的情况下返回到命令行。

 

83. `docker container rm -v my_container`  

    使用 `docker container rm` 命令并加上 `-v` 选项可以删除容器,并同时删除其关联的卷。这在你想要彻底移除容器及其数据时非常有用。

 

84. `docker network disconnect --force my_network my_container`  

    使用 `docker network disconnect` 命令并加上 `--force` 选项可以强制将容器从网络中断开连接。这在你需要移除容器网络连接而容器无法正常停止时非常有用。

 

85. `docker container exec -it --detach my_container`  

    使用 `docker container exec` 命令并加上 `--detach` 选项可以在后台启动一个新的交互式会话。这允许你在容器内启动长期运行的交互式进程。

 

86. `docker image tag --force my_image:tag1 my_image:tag2`  

    使用 `docker image tag` 命令并加上 `--force` 选项可以强制重新标记一个镜像。这在你想要覆盖现有标签而不删除旧标签的情况下非常有用。

 

87. `docker container logs --since 5m my_container`  

    使用 `docker logs` 命令并加上 `--since` 选项可以获取容器在过去5分钟内的日志。这有助于快速查看最近的容器活动。

 

88. `docker image history --no-trunc my_image`  

    使用 `docker image history` 命令并加上 `--no-trunc` 选项可以获取镜像完整的历史记录,而不会对输出进行截断。这有助于查看镜像构建过程中的详细信息。

 

89. `docker container run --init my_image`  

    使用 `--init` 选项运行容器可以在容器内启用一个轻量级的init进程。这个进程负责信号处理和重定向输出,使得容器的行为更接近于在系统上直接运行的进程。

 

90. `docker container run --health-cmd "curl --fail http://localhost:8080/health" --health-interval 10s --health-retries 3 my_image`  

    使用 `--health-cmd` 选项可以在容器中定义一个健康检查命令。`--health-interval` 定义了健康检查的间隔,而 `--health-retries` 定义了在标记容器为不健康之前重试的次数。这有助于确保容器保持健康和响应状态。

 

这些命令进一步增强了 Docker 的灵活性和控制能力,涵盖了构建自定义镜像、容器操作、网络管理、健康检查等多个方面。掌握这些命令可以帮助你更深入地理解 Docker 的工作原理,更有效地管理和维护你的容器化环境。在使用这些命令时,请确保你了解每个命令的具体作用和潜在的影响,以避免不必要的错误和风险。

91. `docker run --cap-drop=ALL my_image`  
    此命令运行一个容器并使用 `--cap-drop` 选项来移除容器的所有Linux能力(capabilities)。这是一种安全措施,用于限制容器能执行的操作,防止潜在的恶意行为。

92. `docker container run --read-only my_container`  
    使用 `--read-only` 选项可以启动一个只读文件系统的容器。这有助于提高安全性,防止容器内的应用程序或用户对文件系统进行写操作。

93. `docker exec --interactive --tty my_container /bin/bash`  
    此命令在已运行的容器 `my_container` 中执行 `/bin/bash` 命令,并使用 `--interactive` 和 `--tty` 选项来分配一个伪终端。这对于需要交互式会话的容器操作非常有用。

94. `docker network inspect my_network`  
    使用 `docker network inspect` 命令可以获取指定网络的详细信息,包括子网、网关、IP范围等。这对于理解和管理容器网络非常有用。

95. `docker container run --restart=on-failure:5 my_image`  
    使用 `--restart` 选项可以设置容器的重启策略。在这个例子中,我们设置为 `on-failure:5`,意味着如果容器失败,Docker将尝试重启它,最多5次。

96. `docker container run --device /dev/my_device:/dev/my_container_device my_image`  
    使用 `--device` 选项可以将宿主机的设备添加到容器中。这在容器需要直接访问宿主机特定设备时非常有用。

97. `docker container run --dns 8.8.8.8 --dns-search example.com my_image`  
    使用 `--dns` 选项可以指定容器使用的DNS服务器,而 `--dns-search` 选项可以设置DNS搜索域。这有助于定制容器的网络配置。

98. `docker container run --entrypoint /path/to/entrypoint_script.sh my_image`  
    使用 `--entrypoint` 选项可以覆盖镜像指定的默认入口点脚本。这允许你使用自定义的启动脚本来运行容器。

99. `docker container run --cpu-period=100000 --cpu-quota=50000 my_image`  
    使用 `--cpu-period` 和 `--cpu-quota` 选项可以限制容器的CPU使用。`--cpu-period` 表示一个周期的时长(以纳秒为单位),而 `--cpu-quota` 表示在这个周期内容器可以使用的CPU时间(以纳秒为单位)。

100. `docker container run --security-opt label=type:enforcing my_image`  
    使用 `--security-opt` 选项可以应用特定的安全选项。在这个例子中,我们设置了SELinux的标签,以强制执行SELinux策略。

这些命令进一步增强了Docker的安全性和灵活性,涵盖了能力限制、文件系统只读、设备管理、DNS配置、重启策略、入口点管理、CPU限制和安全选项等方面。掌握这些命令可以帮助你更深入地理解Docker的工作原理,更有效地管理和维护你的容器化环境。在使用这些命令时,请确保你了解每个命令的具体作用和潜在的影响,以避免不必要的错误和风险。

 

 

 

 

 

 

 

举报

相关推荐

0 条评论