docker 常用命令

3,949 阅读2分钟

在 linux 中启动 docker

sudo systemctl start docker

搜索镜像

docker search mysql

下载镜像

docker pull mysql

查看运行中的容器

docker ps

-a表示所有

查看本地镜像

docker images
# 或者
docker image ls

用 docker 跑一个 mysql 服务

docker run -p 3306:3306 --name uccs_mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql

参数-p设置端口,--name取名,-e MYSQL_ROOT_PASSWORD=123456设置账号为root,密码为123456-d表示作为一个守护进程在后台运行。

删除所有停止的容器

docker container prune

停止、启动、杀死、重启一个容器

docker stop <container_name/container_id>
docker start <container_name/container_id>
docker kill <container_name/container_id>
docker restart <container_name/container_id>

删除 images

# 删除某个 image
docker rmi -f image_id

# 删除所有 image
docker rmi -f $(docker images -aq)

查看运行的容器

docker ps
# 或者
docker container ls

查看所有容器

docker ps -a

查看所有容器的 ID

docker ps -aq

删除容器

docker rm -f <container_id>

删除所有容器

docker rm -f $(docker ps -aq)

删除所有已退出的 container

docker rm -v $(docker ps -a -q -f status=exited)

-v 删除与容器关联的 volume

查看容器日志

docker logs <container_id>

查看容器进程信息

docker top <container_id>

进入当前正在运行的容器

docker exec -it <container_id> /bin/shell
# 或者
docker attach <container_id>

进入容器内部

docker exec -it <container_id> /bin/bash

从容器中将文件拷贝到主机上

docker cp <container_id>:容器目录 主机目录

查看资源

docker stats

提交修改到镜像

docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]

ps:不推荐用这种方法创建镜像,因为不是很安全,不清楚别人会在里面放什么东西,推荐使用 Dockerfile 的方式创建镜像

查看容器详细信息

docker inspect <image_id>

查看镜像历史

docker history <image_id>

打 tag

docker tag <image_id> <tag_name>

保存镜像到本地

docker save <image_id> -o <name.tar>

加载本地镜像

docker load -i <name.tar>

制作镜像

docker build -t <container_name> .

网络

docker 默认网络:

  • bridgedocker 默认的网络模式,会为每个容器分配一个 IP 地址
    • 创建:docker network create xxx
    • 使用:docker run --network xxx
  • host:容器与主机共享网络命名空间,容器使用主机的网络栈,与主机拥有相同的 IP 地址,不需要进行端口映射,容器网络性能较高
    • 使用:docker run --network host
  • none:容器不使用网络,完全隔离
    • 使用:docker run --network none