zoukankan      html  css  js  c++  java
  • docker 本地环境安装流程和基本指令

    docker 本地环境安装流程和基本指令

    安装流程

    本地 window10环境,计划通过虚拟机部署一套linux系统,然后安装对应的docker服务器环境。

    流程如下:

    1.安装虚拟机软件

    2.导入linux系统

    3.在linux下安装对应的docker服务器环境

    注:此处虚拟机软件选用的是Oracle VM VirtualBox、linux选用的镜像版本为CentOS-7,docker通过yum下载的最新版本。

    vm和linux导入过程此处跳过。

    docker安装环节指令

    1.检查linux内核版本、更新yum、下载docker、启动docker指令

    --检查内核版本,必须是3.10及以上`
    uname -r         
    
    --更新系统内核版本
    yum update
    
    --下载并安装docker
    yum install docker
    
    --启动docker
    systemctl start docker
    
    --查看docker版本
    docker -v
    
    --设置开机启动docker
    systemctl enable docker
    
    --停止docker
    systemctl stop docker
    
    --查看本地ip
    ip addr
    
    --查看防火墙状态
    service firewalld status
    
    --关闭防火墙
    service firewalld stop
    
    

    2.docker常用指令

    2.1镜像操作

    -- 查询镜像XX
    docker search XX
    
    -- 下载镜像XX
    docker pull XX
    
    -- 查看本地仓库下镜像
    docker images
    
    -- 删除本地仓库下镜像
    docker rmi XX-id
    

    2.2容器操作

    -- 启动容器,安装镜像,指定别名,做端口映射,后台运行
    -- --name 别名
    -- -p 容器内端口:外部端口
    -- -d 后台运行(默认非后台运行)
    -- XX:version 镜像版本,默认为最新
    docker run --name 别名 -p 8888:8080 -d XX:version
    
    -- 查看容器状态
    -- -a 所有容器(默认只查看运行中容器)
    docker ps -a
    
    -- 启动容器
    docker start YY-id
    
    -- 删除容器
    docker rm YY-id
    
    -- 查看容器的日志
    docker logs container-name/container-id
    

    2.3镜像安装

    镜像安装的流程和指令,主要参考dockerhub对应镜像的指导即可

    仅这里的知识是否已经足够了呢?答案是不够的。除非镜像本身的自恰已经非常完善,并不需要从外部接入修改,否则,定制化配置、指定路径映射这些操作也是需要的。(后续再开章节介绍)

    2.4 Tomcat挂载应用方法(如何进入容器内部以及如何部署)

    -- 容器启动
    docker start XX-id
    
    -- 进入容器内部(找webapps目录,查看需要挂载的路径)
    -- /bin/bask 是固定写法
    docker exec -it XX-id /bin/bash
    
    -- 删除旧容器,通过挂载的方式启动新容器
    docker run -d -p 8090:8080 -v /root/tomcat01/webapps/:/usr/local/tomcat/webapps --name tomcat01 tomcat
    
    

    如果是SpringBoot项目要通过Tomcat容器部署,另外两个要点是(感觉这里只是一种方式,应该还有更优雅的方式);另外一点要注意的是,用这种方式,application.properties中的port设置将失效,以tomcat的端口为对外端口。

    1.尽量通过maven插件来打包(通过开发工具导出的包貌似有点问题)

     <build>
            <finalName>springboot-deploy</finalName>
            <plugins>
                <!-- 配置war打包插件 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.6</version>
                    <configuration>
                        <!-- 禁止当项目中web.xml不存在时抛出异常 -->
                        <failOnMissingWebXml>false</failOnMissingWebXml>
                    </configuration>
                </plugin>
                <!-- 配置编译插件 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    

    2.启动类用特定的方式

    @SpringBootApplication
    public class DemoApplication extends SpringBootServletInitializer {
       
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(DemoApplication.class);
        }
            
    }
    

    3.安装过程中遇到的问题

    1.Job for docker.service failed because the control process exited with error code.

    https://blog.csdn.net/w1316022737/article/details/83692701

    2.SELinux is not supported with the overlay2 graph driver on this kernel

    https://blog.csdn.net/java_kider/article/details/80242091

    3.默认仓库连接不稳定导致mysql下载不下来(解决办法为切换成国内的公开仓库)

    http://mirrors.ustc.edu.cn/help/dockerhub.html?highlight=docker

    4.还遇到了一个mysql和本地navicat版本加密规则不兼容的问题

    通过容器内修改解决办法为:

    https://www.cnblogs.com/yy-cola/p/11226924.html

    https://www.cnblogs.com/zhurong/p/9898675.html

    解决时考虑后续可能还要被其他客户端连接,所以实际解决时是升级本地navicat版本来解决的。

  • 相关阅读:
    js外观模式
    微服务架构的基础框架选择:Spring Cloud还是Dubbo?
    JAVA 中BIO,NIO,AIO的理解
    Reactor和Proactor模式的讲解(关于异步,同步,阻塞与非阻塞)
    JVM(Java虚拟机)优化大全和案例实战
    php编译安装后,加扩展模块
    mysql查所有列名
    cannot get uid for user 'www'
    rabbitmq management Login Failed
    nginx 安装过程中的not found
  • 原文地址:https://www.cnblogs.com/ybk2018af/p/12597075.html
Copyright © 2011-2022 走看看