容器化的个人网站搭建

环境准备:Aliyun ECS实例一台。

实现效果:一个ECS实例上跑三个容器nginx\tomcat\mysql。实现动静分离,数据库分离的简单架构。

一. 建立nginx容器,提供web服务:

(1) 运行容器

# docker run -p 80:80 -v /usr/local/nginx/html:/usr/share/nginx/html --name nginx -it 53 /bin/bash

--name="nginx-lb": 为容器指定一个名称;

-p: 指定端口映射,格式为:主机(宿主)端口:容器端口;

-v:主机的目录映射到容器的

(2) 进入容器:

# docker exec -it d1 /bin/bash

启动Nginx服务:

# /etc/init.d/nginx start

添加常用工具:

# apt-get update

# apt-get install net-tools

 

二.建立tomcat容器,提供动态页面Web服务:

(1)运行容器

# docker run -p 8080:8080 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps --name tomcat -it tomcat /bin/bash

(2)进入容器:

启动tomcat服务:

# /usr/local/tomcat/bin/startup.sh

添加常用工具:

# apt-get update

# apt-get install net-tools

 

三.建立mysql容器,提供数据库服务:

(1)自定义镜像mysql(源码安装)

FROM docker.io/openshift/base-centos7

RUN yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make

RUN yum -y install cmake

RUN groupadd mysql

RUN useradd -r -g mysql -s /bin/false mysql

ADD mysql-5.7.24.tar.gz /root

ADD boost_1_59_0.tar.gz /root/mysql-5.7.24

WORKDIR /root/mysql-5.7.24

RUN cmake . -DWITH_BOOST=boost_1_59_0/ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DMYSQL_DATADIR=/usr/local/mysql/data -DINSTALL_MANDIR=/usr/share/man -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1

RUN make && make install

(2)运行容器:

# docker run -p 3306:3306 --name mysql -it 990386cbd5c0 /bin/bash

(3)进入容器:

# cd /usr/local/mysql/

# chown -R mysql.mysql .

修改配置文件

# cat /etc/my.cnf

[mysqld]

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

#datadir=/var/lib/mysql

#socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

#symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd

 

#[mysqld_safe]

#log-error=/var/log/mariadb/mariadb.log

#pid-file=/var/run/mariadb/mariadb.pid

 

#

# include all files from the config directory

#

!includedir /etc/my.cnf.d

初始化:

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

启动:

./bin/mysqld_safe --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &

改密码:

./bin/mysqladmin -u root -p'ftlU(iHqd2kR' password 123

配置环境变量:

echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

进入mysql授权:

mysql> grant all privileges on *.* to 'root'@'%' identified by '123';

 

容器化的个人网站搭建_第1张图片

容器化的个人网站搭建_第2张图片

 

你可能感兴趣的:(CentOS)