Docker(二) image和镜像仓库

Docker的灵魂探讨篇

  • 制作自己的image
  • 搭建docker镜像仓库

制作自己的image

学习下dockerfile文件的基本语法
FROM
引入基础镜像,例如运行项目要引入jdk运行环境
RUN
在镜像内部执行一些命令,比如安装软件,配置环境等,换行可以使用
RUN groupadd -r mysql && useradd -r -g mysql mysql
ENV
设置变量的值,ENV MYSQL_MA JOR 5.7,可以通过docker run --e key=value修改,后面可以直接使
用${MYSQL_MA JOR}
ENV MYSQL_MAJOR 5.7
LABEL
设置镜像标签
LABEL email=“[email protected]
LABEL name=“itcrazy2016”
VOLUME
指定数据的挂在目录
VOLUME /var/lib/mysql
COPY
将主机的文件复制到镜像内,如果目录不存在,会自动创建所需要的目录,注意只是复制,不会提取和解压
COPY docker-entrypoint.sh /usr/local/bin/
ADD
将主机的文件复制到镜像内,和COPY类似,只是ADD会对压缩文件提取和解压
ADD application.yml /etc/itcrazy2016/
WORKDIR
指定镜像的工作目录,之后的命令都是基于此目录工作,若不存在则创建
WORKDIR /usr/local
WORKDIR tomcat
RUN touch test.txt
会在/usr/local/tomcat下创建test.txt文件

WORKDIR /root
ADD app.yml test/

会在/root/test下多出一个app.yml文件

CMD
容器启动的时候默认会执行的命令,若有多个CMD命令,则最后一个生效
CMD [“mysqld”]

CMD mysqld
注意这里是数组,可以写多个
ENTRYPOINT
和CMD的使用类似
ENTRYPOINT [“docker-entrypoint.sh”]
和CMD的不同
docker run执行时,会覆盖CMD的命令,而ENTRYPOINT不会
EXPOSE
指定镜像要暴露的端口,启动镜像时,可以使用-p将该端口映射给宿主机
EXPOSE 3306

我们用一个spring boot jar包来制作image

首先创建一个springboot项目,写个controller
Docker(二) image和镜像仓库_第1张图片
打成jar包
在linux上创建一个目录
把jar放在目录下,创建Dockerfile文件

FROM openjdk:8
MAINTAINER heyanfeng22
LABEL name="dockerfile-demo" version="1.0" author="heyanfeng22"
COPY spring-boot-image-0.0.1-SNAPSHOT.jar dockerfile-image.jar
CMD ["java","-jar","dockerfile-image.jar"]

构建image

docker build -t test-docker-image .(注意这边有个点号)

查看images
Docker(二) image和镜像仓库_第2张图片
创建container

docker run -d --name spring-boot-01 -p 8888:8081 test-docker-image

在这里插入图片描述
访问:
在这里插入图片描述
windows主机访问:
在这里插入图片描述

完成了

搭建docker镜像仓库

搭建镜像仓库有三种;
官网:hub.docker.com
Docker(二) image和镜像仓库_第3张图片
阿里云:
Docker(二) image和镜像仓库_第4张图片
自己的仓库Docker Harbor

github找下harbor
第一个就是:goharbor/harbor
下载:1.7.1
解压
修改配置文件harbor.cfg

修改运行所在的ip:
hostname = 192.168.116.137
主要就修改这个配置

查看docker-compose有没有安装

docker-compose 是一个用户定义和运行多个容器的 Docker 应用程序。在 Compose 中你可以使用 YAML 文件来配置你的应用服务。然后,只需要一个简单的命令,就可以创建并启动你配置的所有服务。

docker-compose version

如果没有安装

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

这个方法是直接访问下载的,非常的慢,所以换一种python pip安装

检查是否安装pip

pip -v

如果没有则安装

yum -y install epel-release
yum -y install python-pip

查看版本

pip --version

更新pip

pip install --upgrade pip

安装docker-compose

pip install docker-compose 

查看docker-compose

docker-compose version

执行sh install.sh
安装完成
Docker(二) image和镜像仓库_第5张图片
访问http://192.168.116.137
用户/密码,默认的,在harbor.cfg中可配置
admin/Harbor12345

Docker(二) image和镜像仓库_第6张图片

你可能感兴趣的:(工程专题)