Skip to content

Docker Compose

安装

执行以下命令安装docker-compose到docker插件中:

shell
# 创建插件目录
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins

# 下载docker-compose
DOWNLOAD_URL=https://github.com/docker/compose/releases/download/v2.35.1/docker-compose-linux-x86_64
curl -SL ${DOWNLOAD_URL} -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

执行docker info命令检查是否安装成功:

shell
Client:
 Version:    27.3.1
 Context:    default
 Debug Mode: false
 Plugins:
  compose: Docker Compose (Docker Inc.)
    Version:  v2.35.1
    Path:     /root/.docker/cli-plugins/docker-compose

配置

指定容器名字

可以在docker-compose.yml文件中使用container_name关键字来指定容器的名称。例如:

yaml
version: '3'
services:
  web:
    container_name: my-web-container
    image: nginx

指定端口

yml
services:
  samba:
    image: dockurr/samba
    container_name: samba
    ports:
      - "139:139/tcp"
      - "445:445"
      - "138:138/udp"
      - "137:137/udp"
    volumes:
      - /data:/storage
    restart: always

指定工作目录

可以在docker-compose.yml文件中使用working_dir关键字来指定容器的工作目录。例如:

yaml
version: '3'
services:
  web:
    image: nginx
    working_dir: /usr/share/nginx/html

上面的示例中,web服务的工作目录被指定为/usr/share/nginx/html

注意:working_dir关键字只会改变容器内部的工作目录,不会改变宿主机的工作目录。如果需要在宿主机中访问容器内部的文件,可以使用volumes关键字来挂载宿主机的目录到容器中。

指定用户

在Docker Compose中,可以使用user选项指定容器中运行进程的用户。

以下是一个示例docker-compose.yml文件,其中指定了一个名为myapp的容器,该容器将以myuser用户身份运行:

yaml
version: '3'
services:
  myapp:
    image: myimage
    user: myuser
    command: mycommand