Docker学习随笔

一、安装配置:
    1、安装(centos7):
          yum install docker -y
          yum install curl -y
    2、配置(centos7)方便后面结合spring-boot开发:         
        打开/usr/lib/systemd/system/docker.service文件,修改ExecStart这行。
ExecStart=/usr/bin/dockerd  -H tcp://0.0.0.0:2375  -H unix:///var/run/docker.sock
      重启后生效
  systemctl daemon-reload    
  systemctl restart docker.service 
      测试是否生效
curl http://127.0.0.1:2375/info
二、基本命令:
    1、启动|停止|重启:
        systemctl start|stop|restart docker
    2、搜索镜像:
        docker search java  //搜索名称含有java的镜像,下面列出部分,可以看出搜索匹配NAME、DESCRIPTION
       INDEX       NAME                                                   DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
        docker.io   docker.io/node                                         Node.js is a JavaScript-based platform for...   5492      [OK]       
        docker.io   docker.io/tomcat                                       Apache Tomcat is an open source implementa...   1823      [OK]       
        docker.io   docker.io/java                                         Java is a concurrent, class-based, and obj...   1703      [OK]       
        docker.io   docker.io/openjdk                                      OpenJDK is an open-source implementation o...   938       [OK]       
        docker.io   docker.io/ghost                                        Ghost is a free and open source blogging p...   753       [OK]       
        docker.io   docker.io/anapsix/alpine-java                          Oracle Java 8 (and 7) with GLIBC 2.23 over...   303                  [OK]
        docker.io   docker.io/jetty                                        Jetty provides a Web server and javax.serv...   240       [OK]       
        docker.io   docker.io/couchdb                                      CouchDB is a database that uses JSON for d...   202       [OK]
      
    3、docker pull java//下载镜像,将下载NAME为java的镜像,即上面第3行
    4、docker images //显示已经存在的镜像
    5、docker rmi e856e4f0e190 //删除某个镜像,注意最后的字符串是IMAGE ID,需要使用docker images列出后能看到;可能存在依赖,需要先删除依赖的镜像。
    6、docker build -t my-image .  //利用Dockerfile构建镜像,注意最后的点表示Dockerfile在当前目录,Dockerfile后面有示例。原理基本上就是依照某个镜像创建另一个镜像my-image。
    7、docker run --name my-app -p 80:8080 -d my-image //运行镜像实例,my-app实例名,my-image镜像名。
    8、docker stop|start|rm my-app //停止|启动|删除实例,注意删除必先停止
    9、docker ps -a //查看实例列表,-a表示运行的停止的都显示

二、Dockerfile:
    FROM java      //表示基于镜像java创建
    VOLUME /tmp  //创建一个目录,因为tomcat需要用到该临时目录
    ADD app.jar app.jar  //将Dockerfile同目录下的app.jar加入镜像名称为app.jar   
    ENV JAVA_OPTS="" //设置环境变量
  ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]//启动后即运行命令

    当然,Dockerfile的配置不止这么一些,需要时可以自己去搜索。


三、结合spring-boot:
    1、pom.xml:
     <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory> <!-- 指定了Dockerfile的目录 -->
                    <dockerHost>http://192.168.1.168:2375</dockerHost> <!-- 运行docker的目标机器及端口,注意端口在第一步中配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
    2、Dockerfile(src/main/docker目录下,上一步配置):
        FROM java
                VOLUME /tmp
                ADD springboot.demo-0.0.1-SNAPSHOT.jar app.jar
                RUN bash -c 'touch /app.jar'
            ENV JAVA_OPTS=""
             ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

    3、构建:mvn package docker:build
    4、上到目标机器运行:
        docker run --name demo-app -p 80:8080 springboot/springboot.demo //demo-app为实例名;springboot/springboot.demo为利用maven远程构建的镜像名,前面pom.xml配置相对应。

猜你喜欢

转载自blog.csdn.net/freeager/article/details/80203391