在 Debian 12 中配置好 Docker Compose
1、安装 Docker
$ wget -qO- get.docker.com | bash
$ systemctl enable docker2、(在步骤 1 中应该已经装好了) 安装 Docker Compose
$ curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose3、开启 IPv6
编辑 /etc/docker/daemon.json 文件,加入下面的内容:
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64",
"experimental": true,
"ip6tables": true
}重启 Docker 服务,并创建 IPv6 网络(同时也支持 IPv4):
$ systemctl restart docker
$ docker network create --ipv6 npm-net # 或者改成其他的名称4、在 docker-compose.yml 中使用共享网络的方法
services:
service-name:
image: 'xxxx'
ports:
- 'xxxx:xxxx' # 用于访问该服务的端口
networks:
- <my-shared-network> # 共享网络
networks: # 共享网络
<my-shared-network>:
external: true使用同一个网络的服务可以通过 service-name 相互访问。
其他:启动、停止和更新容器
# 创建
$ docker-compose up -d
# 重启服务
$ docker-compose restart
# 关闭服务
$ docker-compose down
# 更新镜像
$ docker-compose pull
$ docker-compose up -d --remove-orphans
# 删除旧的镜像
$ docker image prune其他:删除某个 Docker 服务
# 1、停止容器
$ docker-compose down
# 2、查看容器的ID和运行状态
$ docker ps -a
# 3、删除容器
$ docker rm <container_id>
# 4、查看镜像的ID
$ docker images
# 5、删除镜像
$ docker rmi <image_id>其他:执行命令
使用 docker run 执行命令
# 基本语法
$ docker run [OPTIONS] IMAGE_NAME COMMAND [ARG...]# 执行一次性命令,执行完毕后容器删除
$ docker run --rm ubuntu echo "Hello from Ubuntu"
# 进入交互式 shell
$ docker run -it ubuntu /bin/bash使用 docker exec 在容器中执行命令
# 进入正在运行的容器的交互式 shell
$ docker exec -it <容器ID或名称> /bin/bash
# 使用 docker exec 在现有容器中执行命令而非进入 shell
$ docker exec <容器ID或名称> <命令>其他:更改 docker 数据目录
默认情况下数据目录是 /var/lib/docker,修改或新建 /etc/docker/daemon.json:
{
"data-root": "/your/path"
}其他:导出/加载本地镜像文件
docker save -o myimage.tar 镜像名称:标签
docker load -i myimage.tar