docer compose學習

docker-compose 編排lnmp容器php

https://gitee.com/lichenxin/docker-compose-mnprhtml

安裝

# 二進制包安裝
curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 爲安裝腳本添加執行權限
chmod +x /usr/local/bin/docker-compose

docker-compose --version


# bash 補全命令
curl -L https://raw.githubusercontent.com/docker/compose/1.8.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose

curl -L https://raw.githubusercontent.com/docker/compose/$(docker-compose version --short)/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

# 卸載
rm /usr/local/bin/docker-compose

# 自動構建鏡像並使用鏡像啓動容器
docker-compose up  [-d 後臺啓動]

#Docker Compose將所管理的容器分爲三層,分別是工程(project),服務(service)以及容器(container)。
#Docker Compose運行目錄下的全部文件(docker-compose.yml, extends文件或環境變量文件等)組成一個工
#程(默認爲docker-compose.yml所在目錄的目錄名稱)。一個工程可包含多個服務;每一個服務中定義了容器
#運行的鏡像、參數和依賴,一個服務可包括多個容器實例。

docker-compose.yml經常使用命令

# build 配置構建時的選項

build: ./dir

build:
  context: ./dir
  dockerfile: Dockerfile-alternate
  args:
    buildno: 1

# command 覆蓋容器啓動後默認執行的命令
command: bundle exec thin -p 3000

command: [bundle, exec, thin, -p, 3000]

# dns 配置dns服務器
dns: 8.8.8.8
dns:
  - 8.8.8.8
  - 9.9.9.9


# dns_search 配置DNS的搜索域名
dns_search: example.com
dns_search:
  - dc1.example.com
  - dc2.example.com


# environment 環境變量設置
environment:
  RACK_ENV: development
  SHOW: 'true'
  SESSION_SECRET:

environment:
  - RACK_ENV=development
  - SHOW=true
  - SESSION_SECRET


# env_file 從文件中獲取環境變量,可指定一個文件路徑或路徑列表
#經過 docker-compose -f FILE 指定了Compose文件,那麼env_file中的路徑是Compose文件所在目錄的相對路徑
#使用environment指定的環境變量會覆蓋env_file指定的環境變量
env_file: .env

env_file:
  - ./common.env   # 共用
  - ./apps/web.env # web用
  - /opt/secrets.env # 密碼用

# expose 暴露端口,只將端口暴露給鏈接的服務,而不暴露給宿主機
expose:
 - "3000"
 - "8000"


# external_links 鏈接到docker-compose.yml外部的容器,甚至並不是Compose管理的容器
external_links:
 - redis_1
 - project_db_1:mysql
 - project_db_1:postgresql


# image 指定鏡像名稱或鏡像id,若是本地不存在該鏡像,Compose會嘗試下載該鏡像
image: java8

# links    鏈接到其餘服務的容器。能夠指定服務名稱和服務別名( SERVICE:ALIAS ),也可只指定服務名稱
web:
  links:
   - db
   - db:database
   - redis

services:
  proxy:
    build: ./proxy
    networks:
      - front

https://blog.csdn.net/Kiloveyousmile/article/details/79830810
https://blog.csdn.net/henni_719/article/details/89376111
https://docs.docker.com/compose/compose-file/
networks:
  default:
    # Use a custom driver
    driver: custom-driver-1
    # 使用已存在的網絡
    external:
      name: my-pre-existing-network

  front:
    # Use a custom driver
    driver: custom-driver-1
  back:
    # Use a custom driver which takes special options
    driver: custom-driver-2
    driver_opts:
      foo: "1"
      bar: "2"

# network_mode 設置網絡模式
network_mode: "bridge"
network_mode: "host"
network_mode: "none"
network_mode: "service:[service name]"
network_mode: "container:[container name/id]"


# ports 暴露端口信息 可以使用HOST:CONTAINER 的格式,也可只指定容器端口(此時宿主機將會隨機選擇端口),相似於docker run -p
# 當使用HOST:CONTAINER 格式映射端口時,容器端口小於60將會獲得錯誤的接口,由於yaml會把xx:yy 的數字解析爲60進制。所以,建議使用字符串的形式
ports:
 - "3000"
 - "3000-3005"
 - "8000:8000"
 - "9090-9091:8080-8081"
 - "49100:22"
 - "127.0.0.1:8001:8001"
 - "127.0.0.1:5000-5010:5000-5010"


# volumes 卷掛載路徑設置 能夠設置宿主機路徑 (HOST:CONTAINER) ,也可指定訪問模式 (HOST:CONTAINER:ro)
volumes:
  # Just specify a path and let the Engine create a volume
  - /var/lib/mysql

  # Specify an absolute path mapping
  - /opt/data:/var/lib/mysql

  # Path on the host, relative to the Compose file
  - ./cache:/tmp/cache

  # User-relative path
  - ~/configs:/etc/configs/:ro

  # Named volume
  - datavolume:/var/lib/mysql

# volumes_from 從另外一個服務或容器掛載卷。可指定只讀(ro)或讀寫(rw),默認是讀寫(rw)。
volumes_from:
 - service_name
 - service_name:ro
 - container:container_name
 - container:container_name:rw


https://docs.docker.com/compose/compose-file/

http://www.itmuch.com/docker/20-docker-compose-install/
https://yeasy.gitbooks.io/docker_practice/content/compose/introduction.htmljava

docker-compose經常使用命令

docker-compose --help你會看到以下這麼多命令

build               構建或從新構建服務。服務被構建後將會以project_service 的形式標記
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
images              List images

kill                中止指定服務的容器
docker-compose kill containerId

port                Print the public port for a port binding
docker-compose port eureka 8761   # 輸出eureka服務8761端口所綁定的公共端口


logs                View output from containers



up                  Create and start containers 構建、建立|從新建立、啓動,鏈接服務的相關容器
docker-compose up  # -d 可在後臺啓動並運行全部容器

ps                  List containers 列出全部容器
docker-compose ps


pull                Pull service images 下載服務鏡像
push                Push service images

pause               Pause services

restart             Restart services


rm                  Remove stopped containers 刪除指定服務的容器
docker-compose rm eureka

run                 Run a one-off command 在一個服務上執行一個命令
docker-compose run web bash


scale               Set number of containers for a service  設置指定服務運行容器的個數 以service=num的形式指定
docker-compose scale user=3 movie=3



start               Start services 啓動指定服務已存在的容器
docker-compose start eureka


stop                Stop services 中止已運行的容器
docker-compose stop eureka



top                 Display the running processes
unpause             Unpause services


version             Show the Docker-Compose version information


docker-compose help COMMAND   
#查看docker-compose build的幫助
docker-compose help build

  

3.經常使用命令

docker-compose up -d nginx                     構建建啓動nignx容器

docker-compose exec nginx bash            登陸到nginx容器中

docker-compose down                              刪除全部nginx容器,鏡像

docker-compose ps                                   顯示全部容器

docker-compose restart nginx                   從新啓動nginx容器

docker-compose run --no-deps --rm php-fpm php -v  在php-fpm中不啓動關聯容器,並容器執行php -v 執行完成後刪除容器

docker-compose build nginx                     構建鏡像 。        

docker-compose build --no-cache nginx   不帶緩存的構建。

docker-compose logs  nginx                     查看nginx的日誌 

docker-compose logs -f nginx                   查看nginx的實時日誌

 

docker-compose config  -q                        驗證(docker-compose.yml)文件配置,當配置正確時,不輸出任何內容,當文件配置錯誤,輸出錯誤信息。 

docker-compose events --json nginx       以json的形式輸出nginx的docker日誌

docker-compose pause nginx                 暫停nignx容器

docker-compose unpause nginx             恢復ningx容器

docker-compose rm nginx                       刪除容器(刪除前必須關閉容器)

docker-compose stop nginx                    中止nignx容器

docker-compose start nginx                    啓動nignx容器
version: '2'
services:
  mysql:
    image: mysql:5.7
    expose:
      - "3306"
    environment:
      - MYSQL_ROOT_PASSWORD=123456
  wordpress:
    image: wordpress
    ports:
      - "80:80"
    environment:
      - WORDPRESS_DB_HOST=mysql
      - WORDPRESS_DB_USER=root
      - WORDPRESS_DB_PASSWORD=123456

FROM mysql:5.6

COPY docker-entrypoint.sh /usr/local/bin/
COPY ./sql /sql


RUN chmod -R +x /usr/local/bin/

ENTRYPOINT ["docker-entrypoint.sh"]

EXPOSE 3306
CMD ["mysqld"]


FROM centos:latest
RUN \
  yum update -y && \
  yum install -y epel-release && \
  yum install -y iproute python-setuptools hostname inotify-tools yum-utils which jq && \
  yum clean all && \
  easy_install supervisor
COPY container-files /
RUN chmod +x /config/bootstrap.sh
VOLUME ["/data"]
ENTRYPOINT ["/config/bootstrap.sh"]

http://www.javashuo.com/article/p-cxkbnmct-bm.html
http://www.javashuo.com/article/p-dpmdczkw-s.html
http://www.javashuo.com/article/p-yhjsswjt-gt.htmlpython

spring cloud 與 docker-compose構建微服務mysql

https://blog.csdn.net/vchy_zhao/article/details/70238432nginx

https://testerhome.com/topics/12768git

http://www.javashuo.com/article/p-qylxvkgv-r.htmlgithub

http://www.javashuo.com/article/p-sorclrmm-bd.htmlweb

https://blog.csdn.net/shen_gang/article/details/40619073
http://www.javashuo.com/article/p-hqcefdoe-cz.html
https://blog.csdn.net/weixin_39332806/article/details/80420411redis

分析Mysql 5.6的Dockerfile
https://yq.aliyun.com/articles/68245

Docker Compose部署lnmp
Docker Compose搭建mysql主從複製
http://www.javashuo.com/article/p-tfmbysjl-r.html
Docker-Compose部署nginx代理Tomcat集羣
Docker Compose部署 nginx代理Tomcat集羣

https://download.csdn.net/download/u011781521/10440466

Docker Compose 運行 Tomcat
http://www.javashuo.com/article/p-qvnfwhvq-r.html

https://github.com/Bigberg/docker

https://blog.csdn.net/zhang__rong/article/details/88697544
http://www.javashuo.com/article/p-hqcefdoe-cz.html
https://blog.csdn.net/weixin_39332806/article/details/80420411

Docker mysql 主從

相關文章
相關標籤/搜索