1.Dockerfile文件和要编译的内容必须在同一个目录。
2.一般情况下必须在Dockerfile的目录下执行docker build -t命令,但如果如下命令可以不用
docker build -f /usr/local/war/Dockerfile /usr/local/war -t web:v4
在任何目录执行上面命令
dockerfile样例文件内容:
FROM docker.io/centos
MAINTAINER The CentOS Test Images - test
RUN mkdir -p /usr/app
RUN ls
RUN pwd
COPY /jdk /usr/app/jdk/
ADD tomcat/ /usr/app/tomcat/
ADD hadoop/ /usr/app/hadoop/
ENV JAVA_HOME /usr/app/jdk
ENV PATH $JAVA_HOME/bin:$PATH
#ADD /soft/jdk /
#ADD /soft/tomcat /
#ADD /soft/hadoop /
# Volumes for systemd
# VOLUME ["/run", "/tmp"]
# Environment for systemd
# ENV container=docker
# For systemd usage this changes to /usr/sbin/init
# Keeping it as /bin/bash for compatibility with previous
#CMD ["/bin/bash"]
3.docker export需要指定container,不能像docker save那样指定image或container都可以,
docker import将container导入后会成为一个image,而不是恢复为一个container。
docker save和docker export的区别
总结一下docker save和docker export的区别:
- docker save保存的是镜像(image),docker export保存的是容器(container);
- docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
- docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。
4.使用Dockerfile创建一个tomcat镜像,并运行一个简单war包
https://www.cnblogs.com/hanmk/p/8541814.html
5.两种tomcat的docker镜像启动的方法,一种是war放入tomcat镜像中,第二种是挂载
(1).将war包放入到docker下的tomcat镜像中
首先你是需要把war包放入到centos系统中,本文中将一个test.war的项目放入centos系统的主目录,这个通过ssh工具就可以放到centos中,大家应该都很熟悉。从centos中将test.war移动到docker下tomcat镜像启动的容器中。
docker cp test.war containerID:/usr/local/tomcat/webapps/
(2).挂载
们可以明确一点,即-v参数中,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录。
例子:
docker run -d -p 8080:8080 -v /HMK/helloword/webapps/HelloWorld.war:/usr/tomcat/webapps/HelloWorld.war --name hmk_tomcat jamtur01/tomcat
6.制作tomcat8镜像Dockerfile
FROM docker.io/ubuntu:latest
MAINTAINER gongli
# WORKDIR /usr/src/
# jdk1.8
COPY jdk /usr/local/
ENV JAVA_HOME /usr/local/jdk1.8.0_171
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
# tomcat
# WORKDIR /usr/local/images
COPY tomcat /usr/local/
#公开端口
EXPOSE 8080
#设置启动命令
ENTRYPOINT ["/usr/local/apache-tomcat-8.5.43/bin/catalina.sh","run"]
7.k8s的ymal配置
https://blog.youkuaiyun.com/BigData_Mining/article/details/88535356
8.kubeadm初始化:failed to run Kubelet: failed to create kubelet: misconfiguration: kubelet cgroup driver: "cgroupfs" is问题:
解决:vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --exec-opt native.cgroupdriver=cgroupfs
systemctl daemon-reload
systemctl restart docker
9.k8s初始化失败:
要kubeadm reset
rm -rf /etc/kubernetes/pki/*
10.修改k8s配置文件后的操作:
systemctl daemon-reload
systemctl restart kubelet
11.制作jdk8-apr-dockerfile
FROM temp:v1
MAINTAINER gongli
COPY apr /usr/local/apr
RUN yum update
RUN yum install -y vim && yum install -y gcc
RUN yum install expat-devel -y
RUN yum install make -y
RUN cd /usr/local/apr/apr-1.6.5
RUN /usr/local/apr/apr-1.6.5/configure --prefix=/usr/local/apr
RUN cd /usr/local/apr/apr-1.6.5 && make && make install
RUN cd /usr/local/apr/apr-iconv-1.2.2
RUN /usr/local/apr/apr-iconv-1.2.2/configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
RUN cd /usr/local/apr/apr-iconv-1.2.2 && make && make install
RUN cd /usr/local/apr/apr-util-1.6.1
RUN /usr/local/apr/apr-util-1.6.1/configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-apr-iconv=/usr/local/apr-iconv/bin/apriconv
RUN cd /usr/local/apr/apr-util-1.6.1 && make && make install
RUN cd /usr/local/apr/tomcat-native-1.2.21-src/native
RUN /usr/local/apr/tomcat-native-1.2.21-src/native/configure --with-apr=/usr/local/apr --with-java-home=/usr/local/jdk1.8.0_191
RUN cd /usr/local/apr/tomcat-native-1.2.21-src/native && make && make install
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib