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版本来解决的。

 

posted @ 2020-03-30 10:43  ybkback2018  阅读(947)  评论(0编辑  收藏  举报