docker命令

docker命令
寒霜查看服务器上所有的 docker 镜像
docker images
这个命令会列出所有在本地存在的 Docker 镜像,包括它们的大小和标签信息。如果你想要更详细的信息,可以使用以下命令:
docker images --digests
这会显示每个镜像的摘要信息。如果你想要查看特定仓库的镜像,可以使用–filter 参数来过滤结果:
docker images --filter "reference=<repository-name>"
# 将<repository-name>替换成你想要查看的仓库名称。
查看正在运行的 Docker 容器
docker ps
可以使用-a或--all参数来显示所有容器,包括未运行的容器:
docker ps -a
docker ps -a 和 docker images 的区别
docker ps 和 docker images 是两个不同的 Docker 命令,它们显示的信息也有所不同:
docker ps:
这个命令用于列出容器的信息。
docker ps 默认只显示当前正在运行的容器。
使用 -a 或 –all 参数可以显示所有容器,包括停止的容器。
显示的信息包括容器 ID、创建时间、状态、名称、重启次数、镜像名称等。这个命令关注的是容器实例,即镜像的运行实例。docker images:
这个命令用于列出本地存储的 Docker 镜像。
显示的信息包括镜像 ID、创建时间、大小、仓库名称和标签(tag)。
docker images 不会显示容器的信息,它只关注镜像本身。这个命令可以帮助你管理本地镜像库,比如查看哪些镜像占用了空间,或者确定哪些镜像可以被删除以节省空间。
docker 镜像和容器的区别
定义:
镜像(Image):Docker 镜像是一个轻量级、可执行的软件包,包含了运行一个应用所需的所有内容——代码、运行时、系统工具、系统库等。镜像是容器运行的基础,它是一个只读模板,用于创建容器。
容器(Container):Docker 容器是镜像的运行实例。它是独立运行的一个或一组应用。容器使用镜像来创建,并在隔离的环境中运行应用。容器可以被启动、停止、删除等。持久性:
镜像:镜像是只读的,它们定义了容器的初始状态,但不会随容器的状态改变而改变。
容器:容器对文件系统的变化是临时的,容器删除后这些变化也会随之消失,除非使用了数据卷(Volume)来持久化数据。隔离性:
镜像:镜像本身不提供隔离性,它们是共享的,多个容器可以基于同一个镜像运行。
容器:容器提供了隔离性,每个容器都有自己的文件系统和网络配置,它们在宿主机上运行但相互隔离。启动和停止:
镜像:镜像本身不能被启动或停止,它们只是创建容器的模板。
容器:容器可以被启动和停止,它们是镜像的动态实例。存储:
镜像:镜像存储在 Docker 的镜像库中,可以是本地的,也可以是远程的,如 Docker Hub。
容器:容器运行时会使用镜像,并且可能会产生新的层,这些层存储在本地,但不会上传到镜像库。版本控制:
镜像:镜像可以有标签(tag),用于版本控制,允许用户追踪和管理不同版本的应用。
容器:容器没有版本控制,它们是镜像的一个实例,通常不用于追踪版本。
可移植性:
镜像:镜像是高度可移植的,可以在任何支持 Docker 的环境中运行。
容器:容器的可移植性依赖于镜像的可移植性,但由于容器可能会使用特定的数据卷或网络配置,因此可能不如镜像那样完全可移植。
删除镜像
要删除特定的 Docker 镜像,你需要使用 docker rmi 命令,后面跟上你想要删除的镜像的 ID 或名称
docker rmi my-playwright-app1
使用-f 或–force 参数来强制删除
docker rmi -f my-playwright-app1
请注意,如果镜像正在被使用(例如,如果它们正在运行的容器中),你可能需要先停止并删除这些容器,然后才能删除镜像。
如果你想要一次性删除多个镜像,可以使用以下命令:
docker rmi $(docker images -q my-playwright-app1 my-playwright-app aithemehtml2img1 aithemehtml2img)
构建 docker 镜像
构建 Docker 镜像是一个常见的操作,它允许你将应用程序及其依赖打包成一个轻量级、可移植的容器。以下是构建 Docker 镜像的基本步骤:
1、编写 Dockerfile
2、构建镜像
3、运行容器
1、编写 Dockerfile
# 使用 Playwright 的官方基础镜像
FROM mcr.microsoft.com/playwright:v1.49.0-noble
# 安装 pnpm
# RUN npm install -g pnpm
# 设置工作目录
WORKDIR /app
# 复制 package.json 和 package-lock.json 文件
COPY package.json ./
# 安装项目依赖
RUN npm install
# # 安装 Playwright 和浏览器
# RUN npx playwright install --with-deps
# 复制项目文件
COPY . .
# 默认运行命令
CMD ["node", "index.js"]
2、构建镜像
docker build -t my-playwright-app .
3、运行容器
docker run -d -p 3000:3000 my-playwright-app
-p 参数用于映射端口,3000:3000 表示将容器的3000端口映射到宿主机的3000端口。-d 参数表示在后台运行容器。
查看 Docker 容器的实时日志
docker logs -f <container_id>
通过名称来引用容器
docker run --name aitheme2img(容器名) -p 10089:10086 -d(分离模式”(detached mode)运行容器,即容器会在后台运行,不会占用当前的命令行终端) aitheme2img(镜像)
或者
docker run -d --name aitheme2img(容器名) -p 10089:10086 aitheme2img(镜像)
或者
docker run -d -p 10089:10086 --name aitheme2img(容器名) aitheme2img(镜像)
设置容器随 Docker 服务启动而自动启动
在 Docker 中,要设置容器随 Docker 服务启动而自动启动,你可以在创建容器时使用–restart 标志。这个标志允许你指定重启策略,以确保容器在退出后自动重启,或者在 Docker 服务重新启动时自动启动容器。
no:容器不会自动重启。
always:容器总是在退出后重启。
on-failure:容器仅在非正常退出时(退出状态非 0)重启。
unless-stopped:容器总是在退出后重启,除非它是被手动停止的。
docker run --restart=always -d aitheme2img
这些命令会创建一个新的容器,并设置其重启策略。如果你想要更新已经存在的容器的重启策略,你需要使用docker update命令:
docker update --restart=always <container_id_or_name>
查看 docker 容器里面的所有文件
docker exec -it <container_id_or_name> /bin/bash
/bin/bash换成自己服务器用的终端,然后使用文件系统命令(如ls)来查看文件
停止容器
docker stop <container_id_or_name>
删除容器
docker rm <container_id_or_name>