一,安装
docker pull centos:centos7
安装完成使用 docker images 查看
在docker容器中能找到这个就代表成功了!!!
启动
docker run -itd --name centos-test centos:centos7
使用启动命令后,在用我们查看docker中容器的命令查看(docker ps)能看到正在运行的容器
进入容器内部查看
docker exec -it 容器Id /bin/bash
在这里我们可以看到 centos 跟我们服务器或者虚拟机的目录结构一样,
但是这里他有 vi 等这些命令 ,但是没有 vim 以及 netatst -ntlp 等这些命令
二,创建自己的dockerfile
首先我们需要了解他的指令
关键字 | 说明 |
---|---|
FROM | 基础镜像,当前新镜像是基于哪个镜像的 |
MAINTAINER | 镜像维护者的姓名混合邮箱地址 |
RUN | 容器构建时需要运行的命令 |
EXPOSE | 当前容器对外保留出的端口 |
WORKDIR | 指定在创建容器后,终端默认登录的进来工作目录,一个落脚点 |
ENV | 用来在构建镜像过程中设置环境变量 |
ADD | 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包 |
COPY | 类似ADD,拷贝文件和目录到镜像中! |
VOLUME | 容器数据卷,用于数据保存和持久化工作 |
CMD | 指定一个容器启动时要运行的命令,dockerFile中可以有多个CMD指令,但只有最后一个生效! |
ENTRYPOINT | 指定一个容器启动时要运行的命令!和CMD一样 |
ONBUILD | 当构建一个被继承的DockerFile时运行命令,父镜像在被子镜像继承后,父镜像的 ONBUILD被触发 |
dockerFile文件,首次测试
#继承自哪一个基础的镜像
FROM centos:centos7
#作者信息
MAINTAINER vhai<你的邮箱>
#容器构建时需要的命令
RUN yum -y install vim*
#安装netstat命令
RUN yum -y install net-tools
#配置环境参数(定义的时候不需要加$,引用的时候需要加)
ENV MYPATH /usr/local
#切换目录
WORKDIR $MYPATH
#安装jdk(将宿主机的文件添加到容器,并且会解压)
ADD jdk-8u221-linux-x64.tar.gz /usr/local
#配置jdk的环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_221
ENV CLASSPATH=.:${JAVA_HOME}/jer/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
ENV PATH=$PATH:${JAVA_HOME}/bin
#暴露端口
EXPOSE 80
#启动centos
CMD /bin/bash
# 多个一起执行 与CMD 两者选一即可
ENTRYPOINT ["/bin","bash"]
将配置文件写完我们在服务或者虚拟机的home目录下新建一个Dockerfile 文件
开始启动我们的dockerfile
docker build -f Dockerfile -t mycentos:1.0 .
运行我的自己构建好的镜像
docker run -itd --name centos-test mycentos:1.0
进入容去内部测试我们配置好的环境
docker exec -it 容器id /bin/bash
我们这边配置的是 jdk的环境 所以可以进入后使用Java和Javac来测试环境哦
注意:
这里需要我们在宿主机(就是我们的服务器或者虚拟机上)上放置一个jdk的安装包,没有的话在安装jdk时会失败