dockerfile容器的实战安装nginx和mysql服务
第三章
实验:docker容器的实战
一. 基础环境
安装docker服务
1)配置网络yum源
[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# rm -rf *
[[email protected] yum.repos.d]# ls
[[email protected] yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
[[email protected] yum.repos.d]# ls
CentOS7-Base-163.repo
2)安装docker服务
[[email protected] ~]# yum -y install docker
3)启动docker服务设置开机自动启动
[[email protected] ~]# systemctl start docker
[[email protected] ~]# systemctl enable docker
4)检查版本
[[email protected] ~]# docker version
5)rz导入镜像
[[email protected] ~]# rz
6)导入镜像两种方式
[[email protected] ~]# docker load --input ./centos6.7.tar
[[email protected] ~]# docker load < centos6.7.tar
二. dockerfile安装nginx
- 创建存储dockerfile目录
[[email protected] ~]# mkdir nginx - 移动源代码存储到dockerfile目录
[[email protected] ~]# cp /mnt/nginx-1.6.0.tar.gz ./nginx/ - 创建dockerfile
[[email protected] nginx]# touch dockerfile - 编辑dockerfile文件安装nginx
[[email protected] ~]# vim ./nginx/dockerfile
FROM hub.c.163.com/public/centos:6.7-tools //基础镜像
MAINTAINER [email protected] //作者信息
RUN rm -rf /etc/yum.repos.d/Centos-* //删除系统yum源
RUN wget -o wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo//更新阿里云源
RUN yum -y install epel-release pcre-devel zlib-devel gcc //安装nginx依赖程序
ADD nginx-1.6.0.tar.gz /usr/src/ //添加解压程序到/usr/src/目录
RUN useradd -M -s /sbin/nologin nginx //创建用户
WORKDIR /usr/src/nginx-1.6.0/ //进入目录
RUN ./configure --user=nginx --prefix=/usr/local/nginx --with-http_stub_status_module && make && make install //配置安装nginx
RUN echo “daemon off;” >> /usr/local/nginx/conf/nginx.conf //配置nginx保持运行
ENV PATH /usr/local/nginx/sbin:$PATH //优化nginx命令
EXPOSE 80 //发布80端口
CMD [“nginx”] //启动nginx服务
5. 构建nginx镜像并验证
[[email protected] nginx]# docker build -t nginx:v1.0 .
[[email protected] nginx]# docker images
映射验证服务
[[email protected] nginx]# docker run -it -d -p 80:80 nginx:v1.0
客户端访问192.168.100.10验证
三. dockerfile安装mysql
- 创建存储dockerfile目录
[[email protected] ~]# mkdir mysql - 移动源代码存储到dockerfile目录
[[email protected] ~]# cp /mnt/mysql -5.5.22.tar.gz /mnt/cmake-2.8.6.tar.gz ./nginx/ - 创建dockerfile文件和mysqld.sh启动服务文件编辑安装mysql
[[email protected] mysql]# vim dockerfile
FROM hub.c.163.com/public/centos:6.7-tools //基础镜像
MAINTAINER [email protected] //作者信息
RUN rm -rf /etc/yum.repos.d/Centos-* //删除本地yum源
RUN wget -o wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo //更新阿里云源
RUN yum -y install epel-release ncurses-devel libstdc+±deve gcc-c++ //安装依赖程序
RUN groupadd mysql //创建mysql组
RUN useradd -M -s /sbin/nologin -g mysql mysql //创建mysql用户
ADD cmake-2.8.6.tar.gz /usr/src/ //添加解压程序到/usr/src/目录
ADD mysql-5.5.22.tar.gz /usr/src/ //添加解压程序到/usr/src/目录
WORKDIR /usr/src/cmake-2.8.6 //进入目录
RUN ./configure && gmake && gmake install //编译安装
WORKDIR /usr/src/mysql-5.5.22 //进入目录
RUN cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc && make && make install //编译安装mysql服务
RUN chown -R mysql:mysql /usr/local/mysql/ //设置目录所有者mysql
RUN cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf //生成主配置文件
RUN ln -s /usr/local/mysql/bin/* /usr/local/bin //优化命令
RUN cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld //生成服务控制文件
RUN chmod u+x /etc/init.d/mysqld //添加执行权限
RUN chkconfig --add mysqld //设置开机自动启动
RUN chkconfig mysqld on
RUN /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //初始化mysql服务
COPY mysqld.sh /usr/src/ //运行服务启动脚本
RUN chmod +x /usr/src/mysqld.sh //设置执行权限
EXPOSE 3306 //端口发布3306
CMD “/usr/src/mysqld.sh” && tail -f /dev/null //启动服务报的信息显示到/dev/null回收站
[[email protected] mysql]# vim mysqld.sh
#!/bin/bash
/etc/init.d/mysqld start //启动mysql服务
4. 构建mysql镜像验证
[[email protected] mysql]# docker build -t mysql:v1.0 .
5. 端口映射验证是否能监听到3306mysql端口
[[email protected] ~]# docker run -it -d -p 3306:3306 mysql:v1.0
[[email protected] ~]# netstat -anptu | grep 3306