简单的Docker镜像上传及docker-compose使用

一.仓库和镜像创建和上传
1.注册/登录阿里云容器服务中心:https://cr.console.aliyun.com/
2.选择镜像仓库地址(注:这里选择华北1区,位置在青岛)
简单的Docker镜像上传及docker-compose使用_第1张图片
3.创建镜像仓库:
1).仓库名称填写项目名称
2).仓库类型选择为私有
3).代码源根据需求选择(初期可以使用本地仓库,后期可以选择使用git动态上传)

4.本地镜像上传(如需本地手动上传)
简单的Docker镜像上传及docker-compose使用_第2张图片
5.maven服务配置(如果是使用docker-maven-plugin工具自动上传,则需配置)
1)在maven的setting.xml中增加如下配置:

<servers>
      <server>
        <id>docker-aliyunid>
        <username>******username>
        <password>******password>
        <configuration>
          <email>****@163.comemail>
        configuration>
      server>
servers>

2)在项目的pom.xml中添加如下配置

<plugin>
   <groupId>com.spotifygroupId>
   <artifactId>docker-maven-pluginartifactId>
   <version>0.4.13version>
   <executions>
      <execution>
         <phase>packagephase>
         <goals>
            <goal>buildgoal>
         goals>
      execution>
   executions>
   <configuration>
      
      <serverId>docker-aliyunserverId>
      <registryUrl>${docker.repostory}registryUrl>
      
      <pushImage>truepushImage>
      <imageName>${docker.repostory}/${docker.registry.name}/${docker.id}imageName>
      <dockerDirectory>${project.basedir}/src/main/dockerdockerDirectory>
      <imageTags>
         
         <imageTag>latestimageTag>
      imageTags>
      <resources>
         <resource>
            <targetPath>/targetPath>
            <directory>${project.build.directory}directory>
            <include>${project.build.finalName}.jarinclude>
         resource>
      resources>
   configuration>
plugin>

二、DockerFile文件的编写
样例:

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD user-service-1.0.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

注:
1.From 为镜像的基础镜像,这里选的是jdk8+centos的基本镜像
2.VOLUME 指令创建的挂载点(无法指定主机上对应的目录,是自动生成的)
3.ADD 将jar包上传至容器上
4.ENTRYPOINT容器启动时执行指令
5.如果项目需要指定等待另外一个项目启动后启动,则可以删除ENTRYPOINT,使用wait.it.sh文件,通过docker-compose来启动,后边会详细讲解

三Dockercompose.yml文件编写
样例:
简单的Docker镜像上传及docker-compose使用_第3张图片
1.services为服务根节点,config/generator为项目的名称,可根据具体项目响应更改
2.Image为加载的镜像的名称,由于是私有镜像,在拉取镜像前,需要在终端输入如下命令(这样才有权限拉取镜像):
sudo docker login –username=【账号名称】 registry.cn-qingdao.aliyuncs.com
3.links为互通的容器,使用了links的容器之间,可以通过项目名称直接访问,如:
在generator容器中使用http://config:8888即可访问config的服务
4.ports为容器暴露的端口号
5.Entrypoint 为容器启动后运行的命令,这里的命令意思是等待config服务启动后执行command的命令,超时时间为6s
6.同样docker-compose也可以配置挂载点,如:
volumes:
- ./logstash/conf.d:/etc/logstash/conf.d:ro
- ./logstash/patterns:/etc/logstash/patterns:ro
:ro(readonly)的意思是只允许读操作,不写则默认可以读写

你可能感兴趣的:(平时所学)