dockerfile编写及注意事项

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的区别:

  1. docker save保存的是镜像(image),docker export保存的是容器(container);
  2. docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
  3. 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

 


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值