文章目录
- [一. docker镜像](#一. docker镜像)
- [二. docker容器](#二. docker容器)
- [三. 文件与卷](#三. 文件与卷)
- [四. docker compose](#四. docker compose)
一. docker镜像
shell
# 1. 从远程镜像仓库拉取镜像
docker image pull ubuntu:latest
# 2. 列出本地的镜像
docker image ls
# 解释:显示本地 Docker 主机上存储的镜像列表,可以添加 --digests 参数查看镜像的 SHA256 签名。
# 3. 查看镜像的详细信息
docker image inspect ubuntu:latest
# 解释:展示指定的 Ubuntu 镜像的详细信息,包括镜像层数据和元数据等。
# 4. 删除镜像
docker image rm my_custom_image:v1
# 解释:删除名为 my_custom_image:v1 的镜像,但要确保没有与之关联的正在运行或已停止的容器,否则无法删除。
导出导入镜像
shell
# 5. 导出镜像
# - `docker save -o <输出文件名>.tar <镜像名称>:<标签>`。
docker save -o nl2sql-image.tar nl2sql:1.0.0
# 6. 引入本地镜像
docker load -i myimage.tar
二. docker容器
shell
# 1.1. 启动容器
docker container run --name nltosql -it -d -p host-port:container-port centos:centos8 bash
-it:打开输入输出
-d:以分离模式(detached mode)运行容器,即在后台运行容器,容器启动后不会直接将容器的输出显示在当前终端上。
# 1.2. 启动容器并挂载卷
docker run -it --name nltosql -p 9002:9002 \
-v 宿主机目录:容器目录 \
nltosql-image bash
#2. 进入容器并开启终端
docker container exec -it container-name bash
# 3. docker 运维
docker stop <container_id>
docker start <container_id>
docker restart <container_id>
docker container rm <container_id>
- 会删除停止运行的容器。可以通过容器名称或者ID来指定要删除的容器
docker container prune
删除所有停止的容器
# 4. docker容器运行细节
docker inspect <container_id>
网络信息(对网络执行时)
- 网络的具体配置细节,如网络模式、IP地址范围、子网掩码、网关等,还包括连接到该网络的容器信息以及网络的创建和更新时间等相关元数据,这对于理解和管理Docker网络架构、排查网络连接问题非常有帮助。
# 5. 修改镜像名字
docker tag <旧镜像名称>:<旧标签> <新镜像名称>:<新标签>
docker tag centos8-langchain:latest nl2sql:1.0.0
# 6. 容器保存为镜像
docker commit nl2sql nl2sql:1.0.0
三. 文件与卷
shell
# 1. 复制文件到容器
docker cp /Users/lianggao/Downloads/langchain-nltosql langchain-nltosql:/root/langchain-docker-env
# 2. 复制数据到卷
docker run --rm --volumes-from langchain-nltosql \
-v langchain-python-env:/backup cp -r /root/langchain-env /backup
# 3. 创建卷:
docker volume create --driver local \
--opt type=none \
--opt device=/Users/lianggao/Downloads/langchain-nltosql \
--opt o=bind \
nltosql-volume
四. docker compose
shell
# docker-compose up
docker-compose up -f custom-compose.yml # 使用 custom-compose.yml 文件部署应用
# docker-compose stop
docker-compose stop
# docker-compose rm
# 它会删除容器和网络,但是不会删除卷和镜像。
docker-compose rm
# docker-compose restart
# 如果用户在停止该应用后对其进行了变更,那么变更的内容不会反映在重启后的应用中,这时需要重新部署应用使变更生效。
docker-compose restart
# docker-compose ps:列出Compose应用中的各个容器
docker-compose ps
# docker-compose down
# 会停止并删除运行中的Compose应用。它会删除容器和网络,但是不会删除卷和镜像。
docker-compose down