成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Docker Compose 使用方法

LiuRhoRamen / 1685人閱讀

摘要:的安裝可以參考官網(wǎng),如果安裝了或者則直接就存在了。創(chuàng)建項目目錄創(chuàng)建的程序,功能就是利用的方法進行訪問計數(shù)。還有很多實用的命令,比如等,可以通過來查看更多例子參考官網(wǎng)文檔

Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a Compose file to configure your application’s services. Then, using a single command, you create and start all the services from your configuration.

Dockerfile 可以讓用戶管理一個多帶帶的應(yīng)用容器;而 Compose 則允許用戶在一個模板(YAML 格式)中定義一組相關(guān)聯(lián)的應(yīng)用容器(被稱為一個 project,即項目),例如一個 Web 服務(wù)容器再加上后端的數(shù)據(jù)庫服務(wù)容器等,就拿官網(wǎng)的 Python 例子來說,功能很簡單,利用 redis 的 incr 的功能對頁面的訪問量進行統(tǒng)計。

docker-compose 的安裝可以參考官網(wǎng),如果安裝了 Docker for Mac 或者 Docker for windows 則直接就存在了。

創(chuàng)建項目目錄:

$ mkdir composetest
$ cd composetest


創(chuàng)建 Python 的程序 app.py ,功能就是利用 redis 的 incr 方法進行訪問計數(shù)。

 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." % redis.get("hits")

 if __name__ == "__main__":
     app.run(host="0.0.0.0", debug=True)

由于 Python 依賴的 flaskredis 組件都需要另外安裝,比如使用 pip來安裝,多帶帶設(shè)置一文件 requirements.txt,內(nèi)容如下:

flask
redis

創(chuàng)建 service 依賴的第一個 image,app.py 程序的運行環(huán)境,利用 Dockerfile 來制作,內(nèi)容如下:

 FROM python:2.7 #基于 python:2.7 鏡像
 ADD . /code  #將本地目錄中的內(nèi)容添加到 container 的 /code 目錄下
 WORKDIR /code  #設(shè)置程序工作目錄為 /code
 RUN pip install -r requirements.txt   #運行安裝命令
 CMD python app.py  #啟動程序

Dockerfile 創(chuàng)建好就可以制作鏡像了,運行 docker build -t compose/python_app . ,成功后通過 docker images查看即能看到:

docker images                                   
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
compose/python_app     latest              1a92fed00abd        59 minutes ago      680.4 MB

接下來制作 docker-compose 需要的配置文件 docker-compose.yml, version 要選擇 2 ,1的版本很古老了,配置中可以看到創(chuàng)建了 2 個 service,webredis ,各自有依賴的鏡像,其中 web 開放 container 的5000端口,并與 host 的5000端口應(yīng)對,方便通過 localhost:5000 來訪問, volumes 即將本地目錄中的文件加載到容器的 /code 中,depends_on 表名 services web 是依賴另一個 service redis的,完整的配置如下:

  version: "2"
    services:
      web:
        image: compose/python_app
        ports:
         - "5000:5000"
        volumes:
         - .:/code
        depends_on:
         - redis
      redis:
        image: redis

前提都搞定了,就差最后一步啟動了,命令 docker-compose up ,成功后如下:

Attaching to composetestbypython_redis_1
redis_1  | 1:C 04 Nov 10:35:17.448 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
redis_1  |                 _._
redis_1  |            _.-``__ ""-._
redis_1  |       _.-``    `.  `_.  ""-._           Redis 3.2.5 (00000000/0) 64 bit
redis_1  |   .-`` .-```.  ```/    _.,_ ""-._
redis_1  |  (    "      ,       .-`  | `,    )     Running in standalone mode
redis_1  |  |`-._`-...-` __...-.``-._|"` _.-"|     Port: 6379
redis_1  |  |    `-._   `._    /     _.-"    |     PID: 1
redis_1  |   `-._    `-._  `-./  _.-"    _.-"
redis_1  |  |`-._`-._    `-.__.-"    _.-"_.-"|
redis_1  |  |    `-._`-._        _.-"_.-"    |           http://redis.io
redis_1  |   `-._    `-._`-.__.-"_.-"    _.-"
redis_1  |  |`-._`-._    `-.__.-"    _.-"_.-"|
redis_1  |  |    `-._`-._        _.-"_.-"    |
redis_1  |   `-._    `-._`-.__.-"_.-"    _.-"
redis_1  |       `-._    `-.__.-"    _.-"
redis_1  |           `-._        _.-"
redis_1  |               `-.__.-"
redis_1  |
redis_1  | 1:M 04 Nov 10:35:17.450 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
redis_1  | 1:M 04 Nov 10:35:17.450 # Server started, Redis version 3.2.5
redis_1  | 1:M 04 Nov 10:35:17.451 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add "vm.overcommit_memory = 1" to /etc/sysctl.conf and then reboot or run the command "sysctl vm.overcommit_memory=1" for this to take effect.
redis_1  | 1:M 04 Nov 10:35:17.451 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command "echo never > /sys/kernel/mm/transparent_hugepage/enabled" as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
redis_1  | 1:M 04 Nov 10:35:17.451 * The server is now ready to accept connections on port 6379

此時通過compose 的 ps 命令也能看到 docker-compose ps :

docker-compose ps                                                                       
          Name                          Command               State           Ports
---------------------------------------------------------------------------------------------
composetestbypython_redis_1   docker-entrypoint.sh redis ...   Up      6379/tcp
composetestbypython_web_1     /bin/sh -c python app.py         Up      0.0.0.0:5000->5000/tcp

ok ,在瀏覽器中訪問 http://localhost:5000 就能看到最終的樣子啦。

{% qnimg docker/2016-11-04-22-40-11.jpg title: alt: "class:" %}

docker-compose 還有很多實用的命令,比如 logs、build、start、stop 等,可以通過 docker-compose --help來查看:

Define and run multi-container applications with Docker.

Usage:
  docker-compose [-f ...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help

Options:
  -f, --file FILE             Specify an alternate compose file (default: docker-compose.yml)
  -p, --project-name NAME     Specify an alternate project name (default: directory name)
  --verbose                   Show more output
  -v, --version               Print version and exit
  -H, --host HOST             Daemon socket to connect to

  --tls                       Use TLS; implied by --tlsverify
  --tlscacert CA_PATH         Trust certs signed only by this CA
  --tlscert CLIENT_CERT_PATH  Path to TLS certificate file
  --tlskey TLS_KEY_PATH       Path to TLS key file
  --tlsverify                 Use TLS and verify the remote
  --skip-hostname-check       Don"t check the daemon"s hostname against the name specified
                              in the client certificate (for example if your docker host
                              is an IP address)

Commands:
  build              Build or rebuild services
  bundle             Generate a Docker bundle from the Compose file
  config             Validate and view the compose file
  create             Create services
  down               Stop and remove containers, networks, images, and volumes
  events             Receive real time events from containers
  exec               Execute a command in a running container
  help               Get help on a command
  kill               Kill containers
  logs               View output from containers
  pause              Pause services
  port               Print the public port for a port binding
  ps                 List containers
  pull               Pulls service images
  push               Push service images
  restart            Restart services
  rm                 Remove stopped containers
  run                Run a one-off command
  scale              Set number of containers for a service
  start              Start services
  stop               Stop services
  unpause            Unpause services
  up                 Create and start containers
  version            Show the Docker-Compose version information

更多 docker-compose 例子參考官網(wǎng) doc 文檔 :

Docker-compose with Django : https://docs.docker.com/compo...

Get started with Rails : https://docs.docker.com/compo...

Get started with WordPress : https://docs.docker.com/compo...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26754.html

相關(guān)文章

  • Docker學(xué)習(xí)之Compose介紹(6)

    摘要:列出項目中目前的所有容器。刪除所有停止?fàn)顟B(tài)的服務(wù)容器。一般的,當(dāng)指定數(shù)目多于該服務(wù)當(dāng)前實際運行容器,將新創(chuàng)建并啟動容器反之,將停止容器。命令說明恢復(fù)處于暫停狀態(tài)中的服務(wù)。 Compose 項目是 Docker 官方的開源項目,負(fù)責(zé)實現(xiàn)對 Docker 容器集群的快速編排。其代碼目前在 https://github.com/docker/com... 上開源。 介紹 Compose 定位...

    luodongseu 評論0 收藏0
  • Docker學(xué)習(xí)之Compose介紹(6)

    摘要:列出項目中目前的所有容器。刪除所有停止?fàn)顟B(tài)的服務(wù)容器。一般的,當(dāng)指定數(shù)目多于該服務(wù)當(dāng)前實際運行容器,將新創(chuàng)建并啟動容器反之,將停止容器。命令說明恢復(fù)處于暫停狀態(tài)中的服務(wù)。 Compose 項目是 Docker 官方的開源項目,負(fù)責(zé)實現(xiàn)對 Docker 容器集群的快速編排。其代碼目前在 https://github.com/docker/com... 上開源。 介紹 Compose 定位...

    Jensen 評論0 收藏0
  • dockerdocker-compose 的快速安裝和簡單使用

    摘要:使用不再需要使用腳本來啟動容器。通過配置安裝可以通過修改中的版本,自定義您需要的版本。 本篇將使用 DaoCloud 源在 Ubuntu 上簡單快速安裝 docker 及 docker-compose并添加了通過 Dockerfile 及 docker-compose.yml 使用 nginx 的示例本篇文章所用系統(tǒng)信息如下 Distributor ID: Ubuntu Descri...

    qpal 評論0 收藏0
  • dockerdocker-compose 的快速安裝和簡單使用

    摘要:使用不再需要使用腳本來啟動容器。通過配置安裝可以通過修改中的版本,自定義您需要的版本。 本篇將使用 DaoCloud 源在 Ubuntu 上簡單快速安裝 docker 及 docker-compose并添加了通過 Dockerfile 及 docker-compose.yml 使用 nginx 的示例本篇文章所用系統(tǒng)信息如下 Distributor ID: Ubuntu Descri...

    Faremax 評論0 收藏0
  • docker-compose 基礎(chǔ)命令

    摘要:命令對象與格式命令的對象既可以是項目本身,也可以指定為項目中的服務(wù)或者容器。使用指定的模版文件,默認(rèn)為指定項目名稱,默認(rèn)使用所在目錄名稱。 命令對象與格式 命令的對象既可以是項目本身,也可以指定為項目中的服務(wù)或者容器。 docker-compose [-f=...] [options] [COMMAND] [ARGS ...] -f, --file FILE 使用指定的Compose...

    aristark 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<