在CentOS8上安装docker-compose的方法

我会介绍在CentOS8上安装docker-compose的步骤。

1. 环境是指周围的自然和社会条件。

    OS:CentOS Linux release 8.5.2111
    Docker:Docker version 20.10.14, build a224086
[root@centos8 work1]# cat /etc/redhat-release
CentOS Linux release 8.5.2111
[root@centos8 work1]# docker -v
Docker version 20.10.14, build a224086
[root@centos8 work1]#

2. 安装步骤

安装docker-compose之前,需要先安装Docker。请参考”在CentOS8上安装Docker的方法”来安装Docker。

请用中文将以下内容进行解释,只需提供一种选项:

– Can you help me with my homework?
– Would you like me to assist you in completing your homework?
– Could you offer some assistance in aiding me with my homework?
– Is it possible for you to lend a hand with my homework?

使用以下命令,下载 Docker Compose:
curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

[root@centos8 ~]# curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   664  100   664    0     0   2243      0 --:--:-- --:--:-- --:--:--  2243
100 8648k  100 8648k    0     0  5025k      0  0:00:01  0:00:01 --:--:-- 17.3M
[root@centos8 ~]#

请将以下内容用中文母语进行改写,只需要一种版本:
请改写以下内容,只需要一种版本即可。
请用中文母语进行改写以下内容,只需提供一种版本。

请在下载的 “/usr/local/bin/docker-compose” 文件上运行以下命令,以赋予权限:
chmod +x /usr/local/bin/docker-compose

[root@centos8 ~]# chmod +x /usr/local/bin/docker-compose
[root@centos8 ~]#

通过运行docker-compose -v命令,可以检查已安装的docker-compose版本。

[root@centos8 ~]# docker-compose -v
docker-compose version 1.16.1, build 6d1ac21
[root@centos8 ~]#

3. 验证操作

为了验证Docker Compose的运行情况,我尝试执行了在“Docker Compose – とほほのWWW入門”中介绍的教程。

创建一个工作目录,并切换到该目录。
mkdir work1
cd work1

[root@centos8 ~]# pwd
/root
[root@centos8 ~]# mkdir work1
[root@centos8 ~]# cd work1

请以中文本地语言改写以下内容,只需要一种选项:

请将以下内容翻译为中文本地语言,仅需一种选择:

在已创建的工作目录(/root/work1)下,将创建以下4个文件。

    app.py
    requirements.txt
    Dockerfile
    docker-compose.yml

内容如下:

from flask import Flask
from redis import Redis

app = Flask(__name__)
redis = Redis(host='redis', port=6379)

@app.route('/')
def hello():
    redis.incr('hits')
    return 'Hello World! I have been seen %s times.\n' % redis.get('hits').decode()

if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=True)
flask
redis
FROM python:3.6
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
CMD python app.py
version: '2'
services:
  web:
    build: .
    ports:
     - "5000:5000"
    volumes:
     - .:/code
    depends_on:
     - redis
  redis:
    image: redis
[root@centos8 work1]# pwd
/root/work1
[root@centos8 work1]# ls -l
合計 16
-rw-r--r-- 1 root root  96  3月 26 17:46 Dockerfile
-rw-r--r-- 1 root root 315  3月 26 17:45 app.py
-rw-r--r-- 1 root root 156  3月 26 17:46 docker-compose.yml
-rw-r--r-- 1 root root  12  3月 26 17:45 requirements.txt
[root@centos8 work1]#

以下是需要用中文原生译文更改的句子:

我們會事先啟動 Docker。
系統啟動 Docker。

[root@centos8 work1]# systemctl start docker
[root@centos8 work1]#

请用中文将以下内容进行改写,只需要一个选项:

There are many delicious dishes in Chinese cuisine.

使用以下的docker-compose命令,启动所需的容器。
docker-compose up -d

实行结果

实行结果
[root@centos8 work1]# docker-compose up -d
正在创建网络 “work1_default”,使用默认驱动程序
正在拉取 redis (redis:latest)…
latest: 从 library/redis 中拉取
ae13dd578326: 拉取完毕
e6f25d21ebb3: 拉取完毕
601cc6106ba1: 拉取完毕
5b8be2fd806e: 拉取完毕
950c3791111a: 拉取完毕
567b7ad78092: 拉取完毕
摘要: sha256:771c20f2507b0e6b59a857abc3be09bb6764bb024db35f379ada9fe62ad932c5
状态: 已下载更新的镜像 redis:latest
正在构建 web
步骤 1/5 : FROM python:3.6
3.6: 从 library/python 中拉取
0e29546d541c: 拉取完毕
9b829c73b52b: 拉取完毕
cb5b7ae36172: 拉取完毕
6494e4811622: 拉取完毕
6f9f74896dfa: 拉取完毕
5e3b1213efc5: 拉取完毕
9fddfdc56334: 拉取完毕
404f02044bac: 拉取完毕
c4f42be2be53: 拉取完毕
摘要: sha256:f8652afaf88c25f0d22354d547d892591067aa4026a7fa9a6819df9f300af6fc
状态: 已下载更新的镜像 python:3.6
—> 54260638d07c
步骤 2/5 : ADD . /code
—> a4d9270f0a92
步骤 3/5 : WORKDIR /code
—> 正在运行 49a192ba04f6
正在删除中间容器 49a192ba04f6
—> a79afefccc97
步骤 4/5 : RUN pip install -r requirements.txt
—> 正在运行 b7708247066d
正在收集 flask
正在下载 Flask-2.0.3-py3-none-any.whl (95 kB)
正在收集 redis
正在下载 redis-4.2.0-py3-none-any.whl (225 kB)
正在收集 itsdangerous>=2.0
正在下载 itsdangerous-2.0.1-py3-none-any.whl (18 kB)
正在收集 Jinja2>=3.0
正在下载 Jinja2-3.0.3-py3-none-any.whl (133 kB)
正在收集 Werkzeug>=2.0
正在下载 Werkzeug-2.0.3-py3-none-any.whl (289 kB)
正在收集 click>=7.1.2
正在下载 click-8.0.4-py3-none-any.whl (97 kB)
正在收集 typing-extensions
正在下载 typing_extensions-4.1.1-py3-none-any.whl (26 kB)
正在收集 async-timeout>=4.0.2
正在下载 async_timeout-4.0.2-py3-none-any.whl (5.8 kB)
正在收集 packaging>=20.4
正在下载 packaging-21.3-py3-none-any.whl (40 kB)
正在收集 deprecated>=1.2.3
正在下载 Deprecated-1.2.13-py2.py3-none-any.whl (9.6 kB)
正在收集 importlib-metadata>=1.0
正在下载 importlib_metadata-4.8.3-py3-none-any.whl (17 kB)
正在收集 wrapt<2,>=1.10
正在下载 wrapt-1.14.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (74 kB)
正在收集 zipp>=0.5
正在下载 zipp-3.6.0-py3-none-any.whl (5.3 kB)
正在收集 MarkupSafe>=2.0
正在下载 MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (30 kB)
正在收集 pyparsing!=3.0.5,>=2.0.2
正在下载 pyparsing-3.0.7-py3-none-any.whl (98 kB)
正在收集 dataclasses
正在下载 dataclasses-0.8-py3-none-any.whl (19 kB)
正在安装收集到的包:zipp、typing-extensions、wrapt、pyparsing、MarkupSafe、importlib-metadata、dataclasses、Werkzeug、packaging、Jinja2、itsdangerous、deprecated、click、async-timeout、redis、flask
成功安装 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.3 async-timeout-4.0.2 click-8.0.4 dataclasses-0.8 deprecated-1.2.13 flask-2.0.3 importlib-metadata-4.8.3 itsdangerous-2.0.1 packaging-21.3 pyparsing-3.0.7 redis-4.2.0 typing-extensions-4.1.1 wrapt-1.14.0 zipp-3.6.0
警告:以 ‘root’ 用户身份运行 pip 可能会导致权限错误并与系统软件包管理器产生冲突。建议改用虚拟环境:https://pip.pypa.io/warnings/venv
警告:您正在使用 pip 版本 21.2.4;但可用的是 21.3.1 版。您应该考虑通过 ‘/usr/local/bin/python -m pip install –upgrade pip’ 命令进行升级。
正在删除中间容器 b7708247066d
—> 04577ccd9c5e
步骤 5/5 : CMD python app.py
—> 正在运行 af82aa21e7de
正在删除中间容器 af82aa21e7de
—> d397ba8eaec3
成功构建 d397ba8eaec3
成功标记 work1_web:latest
警告:因为不存在,所以为 web 服务构建镜像。要重新构建此镜像,您必须使用 `docker-compose build` 或 `docker-compose up –build`。
正在创建 work1_redis_1 …
正在创建 work1_redis_1 … 完成
正在创建 work1_web_1 …
正在创建 work1_web_1 … 完成

请以母语中文进行改写,请提供一个选项:

使用以下命令查看 Docker 的状态。
docker ps
docker ps -a
docker images
docker network ls
docker volume ls

[root@centos8 work1]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED         STATUS         PORTS                                       NAMES
87e7d488f9fa   work1_web   "/bin/sh -c 'python …"   2 minutes ago   Up 2 minutes   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   work1_web_1
f41dc67963db   redis       "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   6379/tcp                                    work1_redis_1
[root@centos8 work1]# docker ps -a
CONTAINER ID   IMAGE       COMMAND                  CREATED         STATUS         PORTS                                       NAMES
87e7d488f9fa   work1_web   "/bin/sh -c 'python …"   2 minutes ago   Up 2 minutes   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp   work1_web_1
f41dc67963db   redis       "docker-entrypoint.s…"   2 minutes ago   Up 2 minutes   6379/tcp                                    work1_redis_1
[root@centos8 work1]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
work1_web    latest    d397ba8eaec3   2 minutes ago   916MB
redis        latest    87c26977fd90   8 days ago      113MB
python       3.6       54260638d07c   3 months ago    902MB
[root@centos8 work1]# docker network ls
NETWORK ID     NAME            DRIVER    SCOPE
9fb67fd1621b   bridge          bridge    local
6357fa5f6a07   host            host      local
a144f0d6a794   none            null      local
12816e60b028   work1_default   bridge    local
[root@centos8 work1]# docker volume ls
DRIVER    VOLUME NAME
local     7661007c9b943a9c229e556753bb84029c368c167d6203a7642bc95fabb8614c
[root@centos8 work1]#

请对以下内容用中文进行永久性改写,只需提供一种选项:

“It is important to practice good hygiene habits, such as washing hands frequently, to prevent the spread of germs and keep oneself healthy.”

使用curl命令访问http://localhost:5000/并确认其正常运作。

[root@centos8 work1]# curl http://localhost:5000/
Hello World! I have been seen 1 times.
[root@centos8 work1]# curl http://localhost:5000/
Hello World! I have been seen 2 times.
[root@centos8 work1]# curl http://localhost:5000/
Hello World! I have been seen 3 times.
[root@centos8 work1]# curl http://localhost:5000/
Hello World! I have been seen 4 times.
[root@centos8 work1]# curl http://localhost:5000/
Hello World! I have been seen 5 times.
[root@centos8 work1]#

按照「Docker Compose – とほほのWWW入門」的教程,成功地运行了。

请以中国人的母语将以下内容进行改述,只需要一个版本:

请问如何到达最近的火车站?

使用以下命令停止通过docker-compose up -d启动的容器。
docker-compose down

[root@centos8 work1]# docker-compose down
Stopping work1_web_1   ... done
Stopping work1_redis_1 ... done
Removing work1_web_1   ... done
Removing work1_redis_1 ... done
Removing network work1_default
[root@centos8 work1]#

请用中文重新表达以下句子,只需要一个选项:

用以下命令再次确认Docker的状态:
docker ps
docker ps -a
docker images
docker network ls
docker volume ls

[root@centos8 work1]# docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@centos8 work1]# docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
[root@centos8 work1]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
work1_web    latest    d397ba8eaec3   6 minutes ago   916MB
redis        latest    87c26977fd90   8 days ago      113MB
python       3.6       54260638d07c   3 months ago    902MB
[root@centos8 work1]# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
9fb67fd1621b   bridge    bridge    local
6357fa5f6a07   host      host      local
a144f0d6a794   none      null      local
[root@centos8 work1]# docker volume ls
DRIVER    VOLUME NAME
local     7661007c9b943a9c229e556753bb84029c368c167d6203a7642bc95fabb8614c
[root@centos8 work1]#

查看docker ps -a的结果,我们可以发现容器已经终止并且被删除。
查看docker images的结果,镜像仍然存在。

请参考

Docker Compose – とほほのWWW入门


以上

bannerAds