第三章 实验: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
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
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