【Docker】docker-compose命令
首先
这是一名正在学习Rails等内容的初学工程师,参考其他文章并尝试实际实施后,总结为输出的一部分。可能存在错误,请指正。
关于docker-compose命令。
在需要同时启动多个容器或者Docker run命令选项过于重叠导致命令过长时,可以使用docker-compose命令来组合它们。
通过使用docker-compose.yml文件或docker-compose命令,可以方便地启动多个命令。
使用docker-compose进行构建(对应于docker build <构建上下文>)
执行构建服务(包括网络和数据库)。
由于在docker-compose.yml中有写明build contexts,所以只需要运行docker-compose build即可。
$ docker-compose build
使用docker-compose up命令(对应docker run )。
只需运行”docker-compose up”命令即可启动容器,因为docker-compose.yml文件中已经包含了docker run命令的选项。
由于docker-compose up命令会同时执行构建操作,所以如果镜像还不存在,则会根据Dockerfile进行构建。
从第二次开始,由于已经存在了image,因此不执行build,只执行run。
如果更新了dockerfile,需要注意会使用旧的image进行构建。在这种情况下,需要使用–build选项来执行。
如果希望在后台运行,请使用带有-d选项的启动命令。
$ docker-compose up
docker-compose ps(对应于docker ps)
可以查看docker-compose.yml文件中所记录的容器状态。
# docker-compose psの実行
$ docker-compose ps
>
Name Command State Ports
---------------------------------------------------------------------------------------
product-register-db-1 docker-entrypoint.sh postgres Up 5432/tcp
product-register-web-1 irb Up 0.0.0.0:3000->3000/tcp
# docker psの実行
$ docker ps
>
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4f12786c4d29 product-register_web "irb" 40 seconds ago Up 39 seconds 0.0.0.0:3000->3000/tcp product-register-web-1
f0f4da422f87 postgres "docker-entrypoint.s…" 40 seconds ago Up 39 seconds 5432/tcp product-register-db-1
使用docker-compose执行 (对应docker exec )
在运行docker-compose时,可以在指定服务名称的容器中执行命令。
# docker-compose execを実行
$ docker-compose exec web bash
>
root@4f12786c4d29:/product-register#
$ exit
> コンテナを抜ける
# docker execの実行(再度コンテナに入る場合)
$ docker exce -it product-register-web-1 bash
>
root@4f12786c4d29:/product-register#
执行 docker-compose 构建并启动
加上build选项,再进行一次build,然后再运行。
如果对Dockerfile进行了更改,需要重新构建镜像,所以最好在执行时加上–build选项。
$ docker-compose up --build
关闭docker-compose
停止并删除容器。在需要重新开始的情况下执行重置操作。
# docker-compose downを実行
$ docker-compose down
>
Stopping product-register-web-1 ... done
Stopping product-register-db-1 ... done
Removing product-register-web-1 ... done
Removing product-register-db-1 ... done
Removing network product-register_default
最后
这次关于docker-compose命令的总结如何?如果有什么不对或者建议,欢迎留下评论。
如果您对以下的文章感兴趣的话,一定要去看看哦。