shell 安装docker-compose
docker compose容器编排:启动的集群包含多个服务,而且多个服务之间存在关联关系;而且多个服务启动存在先后顺序安装docker composecurl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bi
·
docker compose
容器编排:启动的集群包含多个服务,而且多个服务之间存在关联关系;而且多个服务启动存在先后顺序
安装docker compose
curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
容器编排
- 通过执行一个文件来实现以此启动多个容器,多个容器之间存在依赖关系,而且多个容器的启动必须遵循特定的次序
- 实现容器编排的工具:compose,k8s
离线安装:
1:上传包
2:赋权 chmod +x docker-compose
3:移动到/bin mv docker-compose /bin
验证:
docker-compose --version
案例:通过docker compose启动两个容器,nginx,redis
[root@master ~]# vim docker-compose.yml 编写yaml文件
version: '3'
services:
web:
image: nginx:1.17.9
ports:
- 85:80
links:
- sql
sql:
image: redis:latest
[root@master ~]# docker-compose up -d 启动定义在yaml文件中的容器
[root@master ~]# docker-compose ps 查看通过yaml文件启动的容器状态
Name Command State Ports
------------------------------------------------------------------------
root_sql_1 docker-entrypoint.sh redis ... Up 6379/tcp
root_web_1 nginx -g daemon off; Up 0.0.0.0:85->80/tcp
[root@master ~]# docker-compose down 关闭通过yaml文件启动的容器
Stopping root_web_1 ... done
Stopping root_sql_1 ... done
Removing root_web_1 ... done
Removing root_sql_1 ... done
案例:通过docker-compose实现一键部署nginx+php
第一步:创建目录,用来作为volume的数据和配置文件目录
[root@master ~]# mkdir /data/nginx/{html,conf} -pv
第二步:准备nginx的配置文件
[root@master ~]# ls /data/nginx/conf/
此配置文件指定了网站根目录是/www/html
[root@master ~]# cat /data/nginx/conf/nginx.conf | grep "/www/html"
root /www/html;
第三步:编写docker-compose文件
[root@master ~]# vim docker-compose.yml
version: '3'
services:
web:
image: nginx:1.17.9
restart: always
container_name: myweb
ports:
- 85:80
volumes:
- "/data/nginx/www:/www/html"
- "/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf"
第四步:执行yaml文件,创建nginx容器
[root@master ~]# docker-compose up -d
查看是否为up状态
[root@master ~]# docker-compose ps
Name Command State Ports
---------------------------------------------------------
myweb nginx -g daemon off; Up 0.0.0.0:85->80/tcp
第五步:准备测试页面,访问测试
[root@master ~]# echo "123">/data/nginx/www/1.html
第六步:修改yaml文件
[root@master ~]# vim docker-compose.yml
version: '3'
services:
web:
image: nginx:1.17.9
restart: always
container_name: myweb
ports:
- 85:80
depends_on:
- php
links:
- php
volumes:
- "/data/nginx/www:/www/html"
- "/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf"
php:
image: php:5.6-fpm
container_name: myphp
restart: always
volumes:
- "/data/nginx/www:/www/html"
第七步:修改nginx的配置文件,兼容php
[root@master ~]# vim /data/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /www/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root /www/html;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
- 85:80
volumes:
- "/data/nginx/www:/www/html"
- "/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf"
php:
image: php:5.6-fpm
container_name: myphp
restart: always
depends_on:
- web
volues:
- "/data/nginx/www:/www/html"
第八步:执行yaml文件,并查看容器状态
[root@master ~]# docker-compose up -d
[root@master ~]# docker-compose ps
第九步:编写php测试页
[rooot@master ~]# cd /data/nginx/www/
[root@master html]# vim a.php
<?php
phpinfo();
?>
案例:通过compose部署nginx+php
1:准备volume用的目录
[root@master ~]# mkdir /data/nginx/{www,conf} -pv
mkdir: created directory ‘/data’
mkdir: created directory ‘/data/nginx’
mkdir: created directory ‘/data/nginx/www’
mkdir: created directory ‘/data/nginx/conf’
2、准备nginx配置文件
[root@master ~]# cd /data/nginx/conf/
[root@master conf]# cp /etc/nginx/nginx.conf ./
[root@master conf]# ls
nginx.conf
3、编写docker-compose部署nginx
docker镜像仓库
- 存储docker镜像文件
概念:
- registry
- repositry
安装方法
- 在线
- 离线
- 离线安装包:https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.5.4.tgz
安装harbor的要求
- 2 核CPU
- 2G内存
安装harbor
1)解压
[root@node2 ~]# tar xvf harbor-offline-installer-v1.5.4.tgz
2)修改配置文件
[root@node2 ~]# vim harbor/harbor.cfg
修改harbor配置文件的主机名部分
hostname = node2
3)启动harbor
[root@node2 harbor]# ./prepare
[root@node2 harbor]# ./install.sh
4)检查一下
[root@node2 harbor]# docker ps
5)登录harbor
- http://ip
- 账号:admin
- 密码:Harbor12345
使用harbor
1)创建项目
创建两个项目,每个项目对应一类镜像的
- nginx项目,存储nginx镜像
- php项目,存储php镜像
鼠标点击实现,略
2)准备镜像文件
将myphp 1.0镜像推送到harbor
第一步:修改镜像的标签
重启harbor
[root@sql ~]# cd harbor
[root@sql harbor]# docker-compose down
[root@sql harbor]# rm -rf /data*
[root@sql harbor]# ./prepare
[root@sql harbor]# ./install.sh
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)