docker-compose 的入门使用

一、安装

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
#测试安装结果
docker-compose --version    #installed test
#卸载操作
sudo rm /usr/local/bin/docker-compose  #Uninstallation

二、使用

任意选择一个目录,新建docker-compose.yml文件

version: '3'
services:
    nginx:
            image: nginx:latest
            ports:
                - '80:80'
                - '443:443'
            volumes:
                - /root/wp_yunlan/nginx/:/home/user/nginx/
    mariadb:
            image: bitnami/mariadb:latest
            volumes:
                - /root/wp_yunlan/mariadb:/home/user/mariadb
	mysql:
    		image: mysql:5.7
		    environment:
				- MYSQL_ROOT_PASSWORD=123456
				- MYSQL_DATABASE=wordpress
    wordpress:
            image: wordpress:latest
            depends_on:
                - mysql
                - nginx
            environment:
            	- WORDPRESS_DB_PASSWORD=123456
                - WORDPRESS_USERNAME=neptunemoon    #这个账户你是自己设定的
                - WORDPRESS_PASSWORD=123123         #这个密码是你自己设定的
            ports:
                - '8080:80'
                - '8081:443'
    		working_dir: /var/www/html
    		volumes:
     			- wordpress:/var/www/html
  • services标签下表示有4个容器,容器名可以自定义。

$ docker-compose up启动$ docker-compose stop停止$ docker-compose rm删除( ps: 在选择的目录下,会自动选择你新建的docker-compose.yml文件,不用指定 )

$ docker-compose [-f docker-compose.yml] up -d #创建并启动容器,后台运行【文件可以指定,当前目录下可以省略】
$ docker-compose [-f docker-compose.yml] down #停止并删除服务【当前目录下可省略-f】
$ docker-compose stop wordpress #停止容器运行,wordpress是yml中的一个容器
$ docker-compose rm wordpress #删除其中一个容器
$ docker-compose start wordpress #启动容器
$ docker-compose restart nginx
$ docker-compose logs --tail 10 nginx
$ docker-compose port nginx
$ docker-compose kill nginx #杀掉容器
$ docker-compose build nginx #构建或重建服务
  • depends_on: 依赖项,启动顺序不重要,主要根据依赖去先启动;
  • environment: 环境变量;
  • ports: 端口映射;
  • volumes: 文件映射;
  • image: 镜像,同时可以结合【build】来使用自定义容器;
...
service: #这里举一个开源项目的例子
...
  jeecg-boot-system:
    build:
      context: ./jeecg-boot-module-system   # 这里是 Dockerfile 所在的文件夹
    restart: always
    container_name: jeecg-boot-system
    image: jeecg-boot-system  # 这里指向的是上面build构建的镜像
    ports:
      - 8080:8080
...

三、注意事项

  • 这里着重提一下image如果是自定义Dockerfile,必须要使用build -> context: ./xxxx指定Dockerfile文件路径,然后使用docker-compose up -d --build [容器名]运行(等同于docker build -t 容器名 ./Dockefile构建好镜像,再运行)
  • (建议) 多使用docker-compose;
  • (建议) 数据请尽量用volumes放在容器外;
  • (建议) 不要所有服务放在一个容器里;

(完)

猜你喜欢

转载自blog.csdn.net/howeres/article/details/110820863