【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命令的总结如何?如果有什么不对或者建议,欢迎留下评论。

如果您对以下的文章感兴趣的话,一定要去看看哦。

 

广告
将在 10 秒后关闭
bannerAds