简介
在了解了docker的基本使用方法后,我们可以通过容器快速准备环境并部署服务。
有些重复性的工作,例如:手动配置一些配置项,安装特定的软件包,使用命令或脚本启动特定服务等等。为了解决这些通用或者重复性的事情,我们可以通过构建一个自己个性化的镜像来固化下来这些环境信息。
本文将简单介绍使用dockerfile构建docker镜像的基本使用方法。
本文以使用ubuntu的镜像为例说明如何根据已有的镜像为基础构建自己需要的镜像。
本例中将演示以Ubuntu 16.04为基础,安装ssh, jdk, vim等软件。
安装包准备
- jdk-8u77-linux-x64.tar.gz
目录结构及Dockerfile
假如工作目录在:~/dockerfiles/my-ubuntu
此目录中的结构如下:
1 2 3
| |-- Dockerfile `-- files `-- jdk-8u77-linux-x64.tar.gz
|
其中Dockerfile中的内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| FROM ubuntu:16.04
LABEL maintainer="yancai915@gmail.com" ENV LANG zh_CN.UTF-8 ENV LC_ALL zh_CN.UTF-8 ENV TZ Asia/Shanghai
RUN sed -i "s/archive.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list \ && sed -i "s/security.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list \ && apt-get update
RUN apt-get install -y openssh-server vim telnet sudo \ && rm /etc/ssh/ssh_host_dsa_key -rf \ && rm /etc/ssh/ssh_host_rsa_key -rf \ && ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key \ && ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key \ && useradd guest \ && echo "guest:guest!@#" | chpasswd \ && echo "guest ALL=(ALL) ALL" >> /etc/sudoers \ && echo "root:123456" | chpasswd \ && sed -i "s/PermitRootLogin\ without-password/PermitRootLogin\ yes/g" /etc/ssh/sshd_config
RUN sed -i '1s/^/set encoding=utf-8\n/' /etc/vim/vimrc \ && echo "set hls" >> /etc/vim/vimrc \ && echo "set expandtab" >> /etc/vim/vimrc \ && echo "set sw=4" >> /etc/vim/vimrc \ && echo "set tabstop=4" >> /etc/vim/vimrc
RUN mkdir /usr/java
ADD files/jdk-8u77-linux-x64.tar.gz /usr/java RUN echo "export JAVA_HOME=/usr/java/jdk1.8.0_77" >> /etc/profile \ && echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile \ && echo "export CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar" >> /etc/profile
RUN mkdir /var/run/sshd EXPOSE 22 8080
ENTRYPOINT /usr/sbin/sshd -D
|
构建镜像
1 2 3 4
| cd ~/dockerfiles/my-ubuntu
docker build --tag="my-ubuntu:1.0" .
|
稍等片刻后构建完成
查询镜像
使用如下命令可以看到已经构建好的镜像
例如:
1 2
| REPOSITORY TAG IMAGE ID CREATED SIZE my-ubuntu 1.0 1979d1447f6d 2 minutes ago 612 MB
|