每一个image都有一个Dockerfile文件生成的
为什么要学习Dockerfile,因为比方我们自己开发的微服务,如何使用Docker来安装呢,其实就是通过Dockerfile文件来生成相对应的image
根据当前目录下的Dockerfile生成image
docker bulid -t mysql-image .
下面学习dockerfile的语法
FROM 构建基础镜像,linux系统,执行的是一个底层支持
VOLUME 数据存储在哪个目录
COPY 拷贝
RUN 运行
ENTRYPOINT
EXPOSE 3306 33060 默认端口,3306是容器的,33060是宿主主机的
CMD 覆盖
现在有一个springboot项目,要做成image
先得到jar包,
mvn clear package
现在linux上创建一个文件夹‘
mkdir springboot-demo-image
cd进入
把jar包传进去
然后创建dockerfile生成image
FROM openjdk:8
MAINTAINER name 声明是name维护这个镜像
LABEL name=“dockerfile-demo” version=“1.0” author=“name” 声明名称版本作者
COPY dockerfile-demo-0.0.1-SHAPSHOT.jar dockerfile-image.jar
CMD [“java”,"-jar",“docker-image.jar”] 执行
生成image
docker build -t test-docker-image .
创建镜像
docker run -d --name user01 -p 8888:8080 test-docker-image
docker ps
可以看到test-docker-image容器创建成功
查看docker启动日志’ docker logs user01
进入容器 docker exec -it user01 sh
再创建一个
docker run -d --name user02 -p 8889:8080 test-docker-image
如果原来是mvc项目
把war包deploy到tomcat的webapps下
如何将image传入仓库hub.docker.com 或者阿里云,或者自己搭建
docker pull mysql默认官网拉
docker login登录官网
docker tag test-docker-image 用户名/test-docker-images:v1.0
docker push 用户名/test-docker-image:v1.0
然后就会推到官网上,然后可以拉去,但是官网太慢了
所以使用阿里云
sudo docker login --username=yangbin1994@163.com registry.cn-hangzhou.aliyuns.com
登录后
docker tag test-docker-image registry.cn-hangzhou.aliyuns.com/itcrazy2016/test-docker-image:v1.0
然后push
sudo docker push registry.cn-hangzhou.aliyuns.com/itcrazy2016/test-docker-iamge:v1.0
阿里云上面就会push上去;