docker-compose编排
安装docker-compose
首先需要docker
下载docker-compose或者上传软件包
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
cp -p docker-compose /usr/local/bin/
安装
chmod +x /usr/local/bin/docker-compose
查看版本
docker-compose --version
一:准备依赖文件
[root@docker opt]# mkdir -p /opt/compose_nginx/nginx /opt/compose_nginx/wwwroot
[root@docker opt]# ls
compose_nginx containerd rh
[root@docker opt]# cd co
compose_nginx/ containerd/
[root@docker opt]# cd compose_nginx/
[root@docker compose_nginx]# ls
nginx wwwroot
[root@docker compose_nginx]# cd nginx/
[root@docker nginx]# ls
[root@docker nginx]# rz -E
rz waiting to receive.
[root@docker nginx]# ls
nginx-1.12.2.tar.gz
定义启动脚本
#!/bin/bash
/usr/local/nginx/sbin/nginx
编写dockerfile
FROM centos:7
MAINTAINER this is nginx images <hyy>
RUN yum -y install pcre-devel zlib-devel gcc gcc-C++ make
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.2.tar.gz /opt/
WORKDIR /opt/nginx-1.12.2
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]
方法二
ENTRYPOINT [ "/usr/local/nginx/sbin/nginx","-g","daemon off;" ]
[root@localhost nginx]# echo "<h1>this is laohu666</h1>" > /opt/compose_nginx/wwwroot/index.html
编写docker-compose
vim /opt/compose_nginx/docker-compose.yml
version: '3'
services:
nginx:
container_name: web1
hostname: nginx
build:
context: ./nginx
dockerfile: Dockerfile
ports:
- 1216:80
- 1217:443
networks:
- cluster
volumes:
- ./wwwroot:/usr/local/nginx/html
networks:
cluster:
yum install -y tree
tree /opt/compose_nginx/
cd /opt/compose_nginx/
docker-compose -f docker-compose.yml up -d
-f, --file FILE :使用特定的compose模板文件,默认为docker-compose.yml
-p, --project-name NAME : 指定项目名称,默认使用目录名称
-d :在后台运行
部署nginx+tomcat
创建tomcat目录,然后把相应的包放进去
编写dockerfile
vim Dockerfile
FROM centos:7
MAINTAINER JXX
ADD apache-tomcat-9.0.16.tar.gz /usr/local
ADD jdk-8u91-linux-x64.tar.gz /usr/local
WORKDIR /usr/local
RUN mv apache-tomcat-9.0.16 tomcat
RUN mv jdk1.8.0_91 java
ENV JAVA_HOME /usr/local/java
ENV CLASSPATH $JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 8080
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
编写yml文件
version: '3'
services:
tomcat:
hostname: tomcat
build:
context: ./tomcat
dockerfile: Dockerfile
ports:
- 8080:8080
networks:
lnmp:
ipv4_address: 172.19.0.20
nginx:
container_name: web1
hostname: nginx
build:
context: ./nginx
dockerfile: Dockerfile
ports:
- 1216:80
- 1217:443
networks:
lnmp:
ipv4_address: 172.19.0.10
volumes:
- ./wwwroot:/usr/local/nginx/html
networks:
lnmp:
driver: bridge
ipam:
config:
- subnet: 172.19.0.0/16
报错
这种报错信息,是因为这个网段已经被占用了,所以我们换一个网段就好了