docker介绍
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。 Docker利用Linux核心中的资源分离机制,例如cgroups,以及Linux核心命名空间(namespaces),来创建独立的容器(containers)。这可以在单一Linux实体下运作,避免引导一个虚拟机造成的额外负担。 docker利用docker-proxy组件控制iptables or ipvs 来实现端口映射。
docker-compose
在容器部署多的情况下,一个一个的部署容器,会比较繁琐,所以诞生了docke-compose,docker-compose是单机编排的程序,只需要一条命令即可部署多个相关联的容器。
开始部署
准备所需文件夹
mkdir -p /data/docker/{mysql,nginx/conf.d,www}
创建docker-compose.yml文件
version: '3'
networks:
lamp:
driver: bridge
services:
mysql1:
image: mysql:5.7
ports:
- "3306:3306"
networks:
- lamp
volumes:
- /data/docker/mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: 411203036
php:
networks:
- lamp
image: bitnami/php-fpm:7.4 #devilbox/php-fpm
volumes:
- /data/docker/www:/usr/share/nginx/html
nginx:
networks:
- lamp
image: nginx
ports:
- "200:80"
volumes:
- /data/docker/www:/usr/share/nginx/html
- /data/docker/nginx/conf.d:/etc/nginx/conf.d
创建nginx配置文件
vi /data/docker/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
index index.php;
location ~ \.php {
include fastcgi_params;
#fastcgi_pass 172.16.0.10:9000;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param RUN_ENV 'dev';
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
启动docker-compose文件
docker-compose up -d
描述
/data/docker/www 网站存放目录
/data/docker/mysql 数据库数据目录
php镜像可能会有点问题,一些组件没安装,如果搭建的网站缺少组件,请编写dockerfile 安装
效果
