文章目录
- 1. `docker run`
- 2. `docker pull`
- 3. `docker images`
- 4. `docker ps`
- 5. `docker stop`
- 6. `docker rm`
- 7. `docker commit`
- 8. `docker exec`
- 9. `docker logs`
- 10. `docker network`
- 11. `docker volume`
- 12. `docker save`
- 13. `docker load`
- 14. `docker tag`
- 15. `docker search`
- 16. `docker diff`
- 17. `docker cp`
- 18. `docker pause`
- 19. `docker unpause`
- 20. `docker attach`
- 21. `docker stats`
- 22. `docker wait`
- 23. `docker rmi`
- 24. `docker build`
Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
以下是一些常用的 Docker 命令及其用法和场景:
1. docker run
命令: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
用法: 启动一个新容器。
场景: 当你想要从一个镜像创建一个新容器并运行一个命令时使用。
示例:
- 启动一个名为
my_container
的ubuntu
镜像容器并执行echo "Hello, Docker!"
命令:docker run -name my_container -it ubuntu echo "Hello, Docker!"
2. docker pull
命令: docker pull [OPTIONS] NAME[:TAG|@digest]
用法: 从仓库拉取或者更新指定的镜像。
场景: 当你需要下载一个镜像到本地仓库时使用。
示例:
- 从 Docker Hub 拉取最新的
ubuntu
镜像:docker pull ubuntu
3. docker images
命令: docker images [OPTIONS]
用法: 列出本地存储的镜像。
场景: 当你需要查看本地所有镜像列表时使用。
示例:
- 查看本地所有镜像:
docker images
4. docker ps
命令: docker ps [OPTIONS]
用法: 列出当前运行的容器。
场景: 当你需要查看当前运行的容器列表时使用。
示例:
- 查看所有运行中的容器:
docker ps
5. docker stop
命令: docker stop [OPTIONS] NAME|ID
用法: 停止一个运行中的容器。
场景: 当你需要停止一个不再需要的运行中的容器时使用。
示例:
- 停止名为
my_container
的容器:docker stop my_container
6. docker rm
命令: docker rm [OPTIONS] NAME|ID
用法: 删除一个或多个容器。
场景: 当你需要删除一个不再需要的容器时使用。
示例:
- 删除名为
my_container
的容器:docker rm my_container
7. docker commit
命令: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
用法: 将容器的当前状态作为一个新的镜像保存。
场景: 当你对一个运行中的容器做了修改,并希望保存这些修改作为一个新的镜像时使用。
示例:
- 将名为
my_container
的容器提交为一个新镜像,命名为new_image
:docker commit my_container new_image
8. docker exec
命令: docker exec [OPTIONS] NAME|ID COMMAND [ARG...]
用法: 在运行的容器中执行命令。
场景: 当你需要在运行中的容器中执行命令时使用。
示例:
- 在名为
my_container
的容器中执行ls
命令:docker exec my_container ls
9. docker logs
命令: docker logs [OPTIONS] NAME|ID
用法: 获取容器的日志输出。
场景: 当你需要查看或跟踪容器的输出时使用。
示例:
- 查看名为
my_container
的容器的日志输出:docker logs my_container
10. docker network
命令: docker network [OPTIONS] COMMAND
用法: 管理 Docker 的网络设置。
场景: 当你需要创建或管理容器的网络连接时使用。
示例:
- 创建一个名为
my_network
的网络:docker network create my_network
11. docker volume
命令: docker volume [OPTIONS] COMMAND
用法: 管理 Docker 的数据卷。
场景: 当你需要持久化或共享容器数据时使用。
示例:
- 创建一个数据卷:
docker volume create my_volume
- 查看所有数据卷:
docker volume ls
- 查看指定数据卷的信息:
docker volume inspect my_volume
- 删除一个数据卷:
docker volume rm my_volume
- 挂载一个数据卷到容器:
docker run -d --name my_container -v my_volume:/path/to/mounted_volume my_image
- 挂载一个本地目录到容器:
docker run -d --name my_container -v /local/path:/path/to/mounted_volume my_image
- 挂载一个只读卷:
docker run -d --name my_container -v my_volume:/path/to/mounted_volume:ro my_image
- 挂载多个卷:
docker run -d --name my_container -v my_volume:/path/to/mounted_volume -v another_volume:/path/to/another_mounted_volume my_image
说明:
create
: 创建一个新的数据卷。ls
: 列出所有本地数据卷。inspect
: 显示关于一个或多个数据卷的信息。rm
: 删除一个或多个数据卷。mount
: 挂载一个数据卷或本地目录到容器中。
在挂载数据卷时,你可以使用本地目录,也可以挂载现有的数据卷。挂载时指定的路径在容器内部可见,并且可以作为容器内的文件系统路径使用。还可以通过:ro
选项将卷挂载为只读,或者使用:Z
选项(在 Linux 上)来设置卷的权限。
数据卷是 Docker 中非常重要的一个功能,它使得数据的持久化和共享变得简单,并且可以跨容器的使用数据卷,这在多个容器之间共享数据时非常有用。
12. docker save
命令: docker save [OPTIONS] NAME|ID
用法: 将一个或多个镜像保存到本地文件。
场景: 当你需要备份或传输镜像时使用。
示例:
- 将名为
my_image
的镜像保存到当前目录下的my_image.tar
文件:docker save my_image > my_image.tar
13. docker load
命令: docker load [OPTIONS] file
用法: 从本地文件加载一个镜像。
场景: 当你需要从备份或传输的文件中恢复镜像时使用。
示例:
- 从当前目录下的
my_image.tar
文件加载镜像:docker load < my_image.tar
14. docker tag
命令: docker tag [OPTIONS] IMAGE[:TAG|@digest] REPOSITORY[:TAG]
用法: 标记一个镜像以便于引用。
场景: 当你需要给镜像打上标签以便于管理时使用。
示例:
- 将名为
my_image
的镜像标记为REPOSITORY/my_image:latest
:docker tag my_image REPOSITORY/my_image:latest
15. docker search
命令: docker search [OPTIONS] QUERY
用法: 在 Docker Hub 上搜索镜像。
场景: 当你需要查找可在 Docker Hub 上使用的镜像时使用。
示例:
- 在 Docker Hub 上搜索
ubuntu
镜像:docker search ubuntu
以上就是 Docker 的一些常用命令及其用法和场景。掌握这些命令,你可以更好地使用 Docker 来进行开发、测试和部署你的应用程序。
16. docker diff
命令: docker diff [OPTIONS] CONTAINER
用法: 显示容器的更改信息。
场景: 当你需要查看容器自上次启动以来有何更改时使用。
示例:
- 查看名为
my_container
的容器的更改:docker diff my_container
17. docker cp
命令: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
用法: 在容器之间或容器与宿主机之间复制文件或目录。
场景: 当你需要在容器之间,或容器与宿主机之间传输文件时使用。
示例:
- 从名为
my_container
的容器中复制/app/data
文件到宿主机的/home/user/
目录:docker cp my_container:/app/data /home/user/
18. docker pause
命令: docker pause [OPTIONS] NAME|ID
用法: 暂停一个或多个正在运行的容器。
场景: 当你需要临时停止一个或多个容器时使用。
示例:
- 暂停名为
my_container
的容器:docker pause my_container
19. docker unpause
命令: docker unpause [OPTIONS] NAME|ID
用法: 恢复一个或多个被暂停的容器。
场景: 当你需要恢复一个或多个被暂停的容器时使用。
示例:
- 恢复名为
my_container
的容器:docker unpause my_container
20. docker attach
命令: docker attach [OPTIONS] NAME|ID
用法: 连接到正在运行的容器的标准输入。
场景: 当你需要与正在运行的容器交互时使用。
示例:
- 连接到名为
my_container
的运行中的容器:docker attach my_container
21. docker stats
命令: docker stats [OPTIONS] NAME|ID
用法: 显示容器的资源使用情况。
场景: 当你需要监控容器的资源使用情况时使用。
示例:
- 显示所有运行中的容器的资源使用情况:
docker stats --all
22. docker wait
命令: docker wait [OPTIONS] NAME|ID
用法: 等待一个或多个容器停止。
场景: 当你需要在容器停止后进行其他操作时使用。
示例:
- 等待名为
my_container
的容器停止:docker wait my_container
23. docker rmi
命令: docker rmi [OPTIONS] NAME|ID
用法: 删除一个或多个镜像。
场景: 当你需要删除一个或多个不再需要的镜像时使用。
示例:
- 删除名为
my_image
的镜像:docker rmi my_image
24. docker build
命令: docker build [OPTIONS] PATH
用法: 使用 Dockerfile 构建镜像。
场景: 当你需要从 Dockerfile 构建一个镜像时使用。
示例:
- 从当前目录下的 Dockerfile 构建镜像:
docker build .