trx
Published on 2024-07-04 / 33 Visits
0

docker常用命令示例

1. 运行容器

假设你想要运行一个基于官方 MySQL 镜像的容器,并且映射端口、设置环境变量以及持久化数据:

docker run --name my-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -v /mydata:/var/lib/mysql -d mysql:latest

# openeuler镜像必须加上-it参数才可以正常运行,--privileged特权模式运行,不是必须的
docker run --name openeuler -itd --privileged openeuler/openeuler /bin/bash

2. 列出正在运行的容器

查看当前正在运行的所有容器:

docker ps

3. 查看镜像列表

列出本地主机上所有的 Docker 镜像:

docker images

4. 从 Docker Hub 拉取镜像

下载最新的 Ubuntu 镜像:

docker pull ubuntu:latest

5. 推送镜像到 Docker Hub

将名为 myimage 的镜像推送到 Docker Hub 的 username 用户下:

docker push username/myimage

6. 启动已停止的容器

启动一个之前停止的容器 mycontainer

docker start mycontainer

7. 停止容器

停止一个运行中的容器 mycontainer

docker stop mycontainer

8. 删除容器

删除一个不再需要的容器 mycontainer

docker rm mycontainer

9. 在容器内执行命令

在容器 mycontainer 内运行 ls 命令:

docker exec mycontainer ls

10. 获取容器日志

查看容器 mycontainer 的日志输出:

docker logs mycontainer

11. 连接到容器

连接到容器 mycontainer 的标准输入、输出和错误流:

docker attach mycontainer

12. 构建镜像

使用当前目录下的 Dockerfile 构建一个名为 myimage 的镜像:

docker build -t myimage .

13. 保存镜像到文件

myimage 镜像保存为 myimage.tar 文件:

docker save -o myimage.tar myimage

14. 加载镜像

myimage.tar 文件加载镜像:

docker load -i myimage.tar

15. 删除镜像

删除一个不再需要的镜像 myimage

docker rmi myimage

16. 停止所有容器

在删除容器之前,你需要确保它们都处于停止状态。如果有些容器正在运行,可以使用以下命令来停止它们:

docker stop $(docker ps -a -q)

17. 删除所有容器

一旦容器都停止了,你可以使用以下命令来删除所有容器:

docker rm $(docker ps -a -q)

或者使用 -f 强制删除选项:

docker rm -f $(docker ps -a -q)

注意:`-f` 选项会强制删除容器,即使它正在运行也会尝试停止并删除。

18. 删除所有镜像

如果你想删除所有镜像,可以使用以下命令:

docker rmi $(docker images -q)

或者使用 -f 强制删除选项:

docker rmi -f $(docker images -q)

注意:在删除镜像前确保没有容器正在使用这些镜像,否则你将收到错误信息。

19. 删除未被任何容器使用的镜像

只有当镜像没有被任何容器使用时,你才能删除它们。可以使用以下命令来删除所有未使用的(悬空的)镜像:

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

20. 删除包含特定标签的镜像

如果你只想删除带有特定标签的镜像,可以使用以下命令:

 docker rmi <your-image-tag>

如果你想删除所有带有相同标签的镜像,可以使用通配符:

docker rmi $(docker images -q | grep "<your-tag>")