笔者也是刚刚接触docker 和spring boot ,花了2天时间初步能将一个boot项目部署进docker,算是入门。也和大家分享一下,如果有不对的地方还请多多交流。
Docker安装
系统环境:CentOS 7
1、先卸载自带的docker
查询
yum list installed | grep docker
卸载
yum -y remove docker-engine.x86_64
yum remove -y docker-engine-selinux.noarch
2、升级本地yum包
yum update
3、 添加yum 仓库配置
tee /etc/yum.repos.d/docker.repo <<-'EOF'
> [dockerrepo]
> name=Docker Repository
> baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
> enabled=1
> gpgcheck=1
> gpgkey=https://yum.dockerproject.org/gpg
> EOF
4、安装docker
yum install docker-engine
5、启动
service docker start
6、设置开机启动
chkconfig docker on
7、镜像加速
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://ff8d923d.m.daocloud.io
service docker restart
以上为笔者收集并且安装成功的命令,供大家参考。
docker镜像下载
先搜索
docker search centos7
下载镜像
docker pull flyceek/centos7-jdk
查看镜像
docker images
构建一个拥有spring boot项目的镜像(通过Dockerfile build来构建)
1、首先我们需要一个spring boot项目,项目代码上传至开源git上:https://git.oschina.net/siliangysd/spring-boot.git
把项目down下来之后,给项目打包,mvn clean package-Dmaven.test.skip=true
2、创建Dockerfile文件:
FROM flyceek/centos7-jdk
VOLUME /tmp
ADD spring-boot/target/spring-boot.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
FROM 为你需要使用的基础镜像
VOLUME /tmp创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录
ADD spring-boot-docker-0.1.0.jar app.jar 将应用jar包复制到/app.jar
ENTRYPOINT表示容器运行后默认执行的命令
3、构建应用镜像
docker build -t siliang/spring-boot-app .
最后的 . 是Dockerfile的路径,可以是绝对路径。
4、运行容器
docker run -d -p 8080:8080 --name sample-app siliang/spring-boot-app
-d 是后台运行,-p 是将容器的8080端口映射至主机的8080端口,这样就可以直接访问。-name 相当于别名的意思。
5、访问:http://xxx.xxx.xxx.xxx:8080/index