Centos7中的docker使用教程(2)

使用dockerFile构建镜像

DockerFile:

什么是dockerFile:

DockerFile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。它们简化了从头到尾的流程,并极大的简化了部署工作。DockerFile从FROM命令开始,紧接着各种方法,命令和参数。其产出一个新的可以用于创建容器的自定义镜像。

dockerFile的基本使用语法:

FROM:定义了使用哪个基础镜像启动构建流程。FROM命令必须是DockerFile的首个命令。

#Usage:FROM  [ image name ]

FROM ubuntu

MAINTAINER:这个命令用于定义声明作者,通常放于FROM的后面。

#Usage:MAINTAINER [ name ]

MAINTAINER authors_name

ADD/COPY:将本地文件添加到容器中,tar类型的文件会自动解压(网络资源不会被解压),可以访问网络资源,类似wegt。COPY功能类似ADD,但是不会自动解压文件,也不能访问网络资源。

#Usage: ADD [ source directory or URL ] [ destination directory ]

ADD /my_app_folder /my_app_folder

docker build [name] 根据dockerFile构造自定义镜像

使用dockerFile构造tomcat与mysql镜像

构造tomcat镜像:

创建工作目录:如图

Centos7中的docker使用教程(2)

编写Dockerfile文件:文件内容如下

#基础镜像为centos

FROM centos

# 维护该镜像的用户

MAINTAINER this is tomcat image <sdk>

# 安装JDK环境,设置其环境变量

ADD jdk1.8.0_201 /usr/local/java

ENV JAVA_HOME /usr/local/java

ENV JAVA_BIN /usr/local/java/bin

ENV JRE_HOME /usr/local/java/jre

ENV PATH $PATH:/usr/local/java/bin:/usr/local/java/jre/bin

ENV CLASSPATH /usr/local/java/jre/bin:/usr/local/java/lib:/usr/local/java/jre/lib/charsets.jar

ADD apache-tomcat-8.5.39  /usr/local/tomcat

#开启端口

EXPOSE 8080

构造镜像:docker build -t tomcat:centos .

Centos7中的docker使用教程(2)

运行容器:docker run -d -p 8888:8080 --name sdk tomcat

访问验证:

Centos7中的docker使用教程(2)

构建mysql镜像:

创建工作目录:

Centos7中的docker使用教程(2)

编写dockerFile文件:

FROM guyton/centos6

MAINTAINER this is msyql images <sdk>

RUN yum install mysql mysql-server

RUN /etc/init.d/mysqld start &&\

mysql -e "grant all privileges on *.* to 'root'@'%' identified by 'abc123';" &&\

mysql -e "grant all privileges on *.* to 'root'@'localhost' identified by 'abc123';"      #root在本地,非本地登录时都使用abc123密码

EXPOSE 3306

CMD ["mysqld_safe"]

构造镜像:

docker build -t centos6:mysql .

运行容器:

docker run --name=mysqlserver -d -P centos6:mysql

连接验证:

Centos7中的docker使用教程(2)

成功!