docker-ce 的安装

yum -y update 
yum install -y yum-utils net-tools
yum-config-manager        --add-repo  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
sudo echo 'LANG="en_US.UTF-8"' >> /etc/profile;source /etc/profile

yum install docker-ce
systemctl start docker

#添加docker镜像仓库地址

vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://7pmw5ehf.mirror.aliyuncs.com"]
}

systemctl daemon-reload
systemctl enable docker
systemctl restart docker

学习dockerfile 编写打包镜像

打包的文件与dockerfile 本地同一目录,或者全路径文件

mkdir dockerApp
cd   dockerApp
vim  dockerfile

编写Dockerfile

Dockerfile是一个由一条条指令组成的文本文件,通过它能快速地构建docker镜像。在基础镜像上打成自己所需要的环境,为基础镜像,然后再去打包项目war或者jar,这样方便升级和重复利用。

 
#dockerfile 自己制作带JDK8的centos镜像
FROM centos
MAINTAINER xp "412044923@qq.com"
ADD jdk-8u211-linux-x64.tar.gz /usr/local/
# 配置JAVA_HOME环境变量
ENV JAVA_HOME /usr/local/jdk1.8.0_211/
LABEL app="jdk8" version="0.1.1" by="xp"
# 将JAVA_HOME/bin 添加至PATH环境变量
ENV PATH $JAVA_HOME/bin:$PATH
ENTRYPOINT ["java","-version"]

 
#dockerfile  直接拉取云docker仓库,上jdk8的镜像文件
FROM openjdk:8
MAINTAINER XP
LABEL app="myApp" version="0.1.1" by="xp"
COPY ./mywork.jar mydockerapp.jar
CMD java -jar mydockerapp.jar



#本文的Dockerfile内容如下:
# 镜像文件
FROM centos
# 维修者
MAINTAINER CICD "412044923@qq.com"
#添加本地文件到镜像目录
ADD jdk-8u211-linux-x64.tar.gz  /usr/local/
ADD apache-tomcat-8.5.43.tar.gz  /usr/local/
ENV JAVA_HOME /usr/local/jdk1.8.0_211
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.43
ENV CATALINA_BASE /usr/local/apache-tomcat-8.5.43
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#添加war包到webapps目录下运行,此处不加,只运行tomcat欢迎页查看效果
#ADD ./team.war /usr/local/apache-tomcat-8.5.43/webapps
EXPOSE 8080
CMD /usr/local/apache-tomcat-8.5.43/bin/catalina.sh run
#解释:
#(1)FROM  centos  表示从docker官方仓库中获取centos基础镜像
#(2)ADD  jdk-8u161-linux-x64.tar.gz  /usr/local/   将当前目录下(与Dockerfile同一级目录)的jdk添加到镜像的/usr/local/中
#(3)ENV JAVA_HOME /usr/local/jdk1.8.0_161  设置Java的环境变量
#(4)EXPOSE 8080  对外暴露的端口,便于外部访问
#(5)CMD /usr/local/apache-tomcat-8.5.29/bin/catalina.sh run 容器运行后执行的命令,如果有多条CMD也只有最后一条有效。


#创建docker镜像
docker build -t webapp . #(注意最后的 .)
#查看镜像
docker images
#跑起来( -p 指定Linux机器映射端口  -d 后台运行)
docker run --name mywebapp -p 8080:8080 -d myapp
#查看日志
docker logs myapp
#查看运行的所有容器
docker ps -all
#停止容器
docker stop mywebapp #(也可以用id)
#关闭容器
docker kill mywebapp
#重启容器 
docker restart mywebapp 

#查看容器(镜像ID) 
docker ps -a 
#删除容器(镜像ID) 
docker rm fb087642b497

1562916032875