第三章
实验:docker容器的实战
一. 基础环境
安装docker服务
1)配置网络yum源
[root@centos01 ~]# cd /etc/yum.repos.d/
[root@centos01 yum.repos.d]# rm -rf *
[root@centos01 yum.repos.d]# ls
[root@centos01 yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@centos01 yum.repos.d]# ls
CentOS7-Base-163.repo
2)安装docker服务
[root@centos01 ~]# yum -y install docker
3)启动docker服务设置开机自动启动
[root@centos01 ~]# systemctl start docker
[root@centos01 ~]# systemctl enable docker
4)检查版本
[root@centos01 ~]# docker version
5)rz导入镜像
[root@centos01 ~]# rz
6)导入镜像两种方式
[root@centos01 ~]# docker load --input ./centos6.7.tar
[root@centos01 ~]# docker load < centos6.7.tar
二. dockerfile安装nginx
- 创建存储dockerfile目录
[root@centos01 ~]# mkdir nginx
- 移动源代码存储到dockerfile目录
[root@centos01 ~]# cp /mnt/nginx-1.6.0.tar.gz ./nginx/
- 创建dockerfile
[root@centos01 nginx]# touch dockerfile
- 编辑dockerfile文件安装nginx
[root@centos ~]# vim ./nginx/dockerfile
FROM hub.c.163.com/public/centos:6.7-tools //基础镜像
MAINTAINER 2211348671@qq.com //作者信息
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镜像并验证
[root@centos01 nginx]# docker build -t nginx:v1.0 .
[root@centos01 nginx]# docker images
映射验证服务
[root@centos01 nginx]# docker run -it -d -p 80:80 nginx:v1.0
客户端访问192.168.100.10验证
三. dockerfile安装mysql
- 创建存储dockerfile目录
[root@centos ~]# mkdir mysql
- 移动源代码存储到dockerfile目录
[root@centos ~]# cp /mnt/mysql -5.5.22.tar.gz /mnt/cmake-2.8.6.tar.gz ./nginx/
- 创建dockerfile文件和mysqld.sh启动服务文件编辑安装mysql
[root@centos mysql]# vim dockerfile
FROM hub.c.163.com/public/centos:6.7-tools //基础镜像
MAINTAINER 2211348671@qq.com //作者信息
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回收站
[root@centos01 mysql]# vim mysqld.sh
#!/bin/bash
/etc/init.d/mysqld start //启动mysql服务
4. 构建mysql镜像验证
[root@centos01 mysql]# docker build -t mysql:v1.0 .
5. 端口映射验证是否能监听到3306mysql端口
[root@centos01 ~]# docker run -it -d -p 3306:3306 mysql:v1.0
[root@centos01 ~]# netstat -anptu | grep 3306