目录
5、自定义ip地址,并启动镜像容器(限制 Nginx 容器最多使用500MB的内存和1G的Swap)
5、自定义ip地址,并启动镜像容器(限制Mysql容器写/dev/sda的速率为10 MB/s)
一、部署环境
容器 |
操作系统 |
ip地址 |
主要软件 |
nginx |
Centos7.6 |
172.18.0.11 |
nginx-1.12.0.tar.gz、wordpress-4.9.4-zh_CN.tar |
mysql |
Centos7.6 |
172.18.0.12 |
mysql-boost-5.7.20.tar.gz |
php |
Centos7.6 |
172.18.0.13 |
php-7.1.10.tar |
软件包的下载地址 http://101.34.22.188/lnmp_wordpress/ |
二、安装centos:7
[root@docker-lnmp ~]# docker pull centos:7
[root@docker-lnmp ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 eeb6ee3f44bd 2 months ago 204MB
三、自定义网络
[root@docker-lnmp ~]# docker network create --subnet=172.18.0.0/16 mynetwork
ae2c0ab23b97011855e9c89099e8d1f8a6c045b185e569f86333e06d6589b7bd
[root@docker-lnmp ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
fbed913fbc3a bridge bridge local
c31e47162b35 host host local
ae2c0ab23b97 mynetwork bridge local
ff4a150e9cc3 none null local
[root@docker-lnmp ~]# ifconfig
br-ae2c0ab23b97: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.18.0.1 netmask 255.255.0.0 broadcast 172.18.255.255
ether 02:42:91:3f:6c:25 txqueuelen 0 (Ethernet)
RX packets 204647 bytes 299898840 (286.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 90995 bytes 5920196 (5.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
四、安装nginx
1、创建Nginx目录
[root@docker-lnmp ~]# mkdir /opt/nginx
[root@docker-lnmp ~]# cd /opt/nginx
[root@docker-lnmp nginx]# ls
nginx-1.12.0.tar.gz wordpress-4.9.4-zh_CN.tar.gz
2、编写Nginx的Dockerfile脚本
[root@docker-lnmp nginx]# vim Dockerfile
FROM centos:7
MAINTAINER this is nginx image
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make;useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.0.tar.gz /usr/local/src/
WORKDIR /usr/local/src/nginx-1.12.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module;make -j 4 && make install
ENV PATH /usr/local/nginx/sbin:$PATH
ADD nginx.conf /usr/local/nginx/conf/
ADD wordpress-4.9.4-zh_CN.tar.gz /usr/local/nginx/html
RUN chmod 777 -R /usr/local/nginx/html/
EXPOSE 80
VOLUME [ "/usr/local/nginx/html/" ]
CMD [ "/usr/local/nginx/sbin/nginx","-g","daemon off;" ]
3、配置nginx.conf文件
[root@docker-lnmp nginx]# vim 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;
charset utf-8;
location / {
root html;
index index.html index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root html;
fastcgi_pass 172.111.0.30:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
}
}
4、生成nginx镜像
[root@docker-lnmp nginx]# docker build -t lnmp:nginx1 .
[root@docker-lnmp nginx]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
lnmp nginx1 3cb059547907 13 seconds ago 523MB
centos 7 eeb6ee3f44bd 2 months ago 204MB
5、自定义ip地址,并启动镜像容器(限制 Nginx 容器最多使用500MB的内存和1G的Swap)
[root@docker-lnmp nginx]# docker run -d --name nginx -p 80:80 -m 500m --memory-swap 1g --net mynetwork --ip 172.18.0.11 lnmp:nginx1
a1c5bb69bd325c14f49a3f242745d0e68b6372bf7c31fda47ca5523045a6aac6
[root@docker-lnmp nginx]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS