什么是Dockerfile?
Dockerfile 是一个文本格式的配置文件, 用户可以使用 Dockerfile 来快速创建自定义的镜像
dockerfile 的基本结构
Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行。
一般的,Dockerfile 分为四部分:
基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。
镜像操作指令中的COPY和ADD的区别!
COPY:复制 ,假设 COPY jdk.tar.gz /usr/local/java
意思就是我要把jdk.tar.gz复制到java文件夹当中去
ADD:解压,假设 ADD jdk.tar.gz /usr/local/java
意思就是我要把jdk.tar.gz解压到java文件夹当中去
Java Downloads | Oracle 下载jdk压缩包
步骤1:建立/user/sshd目录,并切换到该目录。
# mkdir -p /user/sshd
# cd /user/sshd
步骤2:编写Dockerfile文件,注意文件的首字母必须大写。
# vi Dockerfile //编写Dockerfile文件
。。。。。。
。。。。。。
。。。。
FROM centos
MAINTAINER xxxxxx@xxx.com
ENV MYPATH /usr/local
WORKDIR $MYPATH
#安装vim编辑器
RUN yum -y install vim
#安装ifconfig命令查看网络IP
RUN yum -y install net-tools
#安装java8及lib库
RUN yum -y install glibc.i686
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把jdk-8u171-linux-x64.tar.gz添加到容器中,安装包必须要和Dockerfile文件在同一位置
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java环境变量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
EXPOSE 80
CMD echo $MYPATH
CMD echo "success--------------ok"
CMD /bin/bash
遇到的问题是:去官网找个jdk的压缩包
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171 这句话得看你下载的tar.gz解压缩之后的名称
还有yum源的问题+加上老师给的话就做出来了
步骤3:利用docker build命令构建自定义镜像,镜像名为sshd:v1.0。
步骤4:利用sshd:v1.0镜像创建容器,容器名为test3_sshd。
# docker run -dit --name test_sshd sshd:v1.0
# docker ps -a
从docker ps –a命令的显示现象可以看到,容器名为test_sshd的容器状态为UP状态,表示容器创建成功,并且正常运行。
步骤5:进入test_sshd容器,查看IP地址。
# docker exec -it test_sshd /bin/bash
[root@9a10804d2775 /]# ifconfig
可以看到我的ip地址是 172.17.0.6
步骤6:克隆一个终端,进行测试。
# ssh 172.17.0.3 // SSH到172.17.0.3主机
ssh和java都有啦
得把这些配了才能连