终极离线情况下安装docker、mysql、jdk、启动项目

很多政府项目都处于一个网络封闭环境中,对于这样的情况,我们在使用linux安装一些软件就不能直接的通过网络获取,今天我就说下怎么在离线的情况情况下,做好这些。

一. 离线安装docker

其实离线安装docker非常简单,网络上也是有很多教程,我也来说下。

1.先在有网络的电脑上下载一个docker安装包。docker安装包下载(这里面有很多,需要下载同一个版本的3个文件)

dockercompose 添加java启动参数 docker启动jdk_docker部署项目


2.将文件利用filezilla工具,将安装包存入linux系统某文件夹下,进入该文件夹。3.安装docker,将这三个包按照顺序分别安装即可,顺序的话,安装的时候会提示,如果顺序错了会提示有依赖包。

dockercompose 添加java启动参数 docker启动jdk_离线安装docker_02


4.安装完成后,查看时候已启动docker服务:ps -aux | grep docker 5.如果未启动服务,systemctl start docker 启动docker服务。

6.Docker info查看docker信息。

以上就完成了docker的离线安装。

二、安装mysql镜像

在成功安装完成docker之后,使用docker安装mysql镜像就很方便了。
1.首先你得弄到一个mysql镜像文件,可以网上下载也可以在本有mysql镜像的docker内打包导出。
导出方法:Docker save -o 包名.tar 镜像名称:镜像版本号

Docker save - o mysql.tar docker.io/centos/mysql-57-centos7: latest

2.一般导出的位置是在/root目录下。也可以查找下。

Find / -name 报名.tar
Find/ -name mysql.tar

3.将包拷贝到另一台无网络服务器上(/root目录下),进入目录,利用docker加载镜像。

Docker load -i 包名.tar
   Docker load -i mysql.tar

4.查看镜像docker images

5.启动镜像加载为容器(针对mysql镜像)

sudo docker run --name pwc-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d 镜像名称

6.启动容器 docker start 容器id

ok这就完成了离线安装mysql镜像了。

三、安装jdk镜像

安装jdk镜像跟安装mysql镜像,步骤一样,只是启动镜像有点差别。
将镜像打成容器:

docker  run -d -p 9999:8080 -it 镜像名称:版本号 /bin/bash
四、启动项目

1.第一步 docker内部启动的是一个个的镜像文件,所以我们首先得把项目jar做成镜像。

  • a.构建镜像语句 docker build -t <镜像名> -f <Dockerfile路径> 这条语句是用来构建自己镜像的,启动这条语句,docker引擎会通过你定义的Dockerfile路径去找到你的Dockerfile文件。
  • b.编写Dockerfile
  • FROM hub.c.163.com/housan993/centos7_jdk8
  • MAINTAINER YYL
  • ADD mul_user_management.jar /opt
  • WORKDIR /opt EXPOSE 9500
  • CMD java -Duser.timezone=GMT+8 -jar mul_user_management.jar --server.port=9500
  • FROM 是Dockerfile首条语句且不可缺少的语句,FROM是用来定义一个基础镜像,FROM <image>或者 FROM <image>:<tag>
  • 基础镜像可以是已经存在任何一个镜像,可以这么理解,FROM会将你定义的基础镜像拿过来,把它当成模子,在其基础上进行制定,所以基础镜像是不可缺少的。
  • MAINTAINER
    格式为MAINTAINER user_name user_email 或者 2.MAINTAINER name,指定维护者信息
  • ADD ADD <src> <dest> 将指定的src拷贝到容器的dest去,src可以是Dockerfile所在的目录的一个相对路径;可以是URL,也可以是tar(自动解压)
  • WORKDIR:指定当前工作目录,相当于 cd WORKDIR /path/to/workdir

CMD支持三种格式
CMD [“executable”,“param1”,“param2”] 使用 exec 执行,推荐方式;
CMD command param1 param2 在 /bin/bash 中执行,提供给需要交互的应用;
CMD [“param1”,“param2”] 提供给 ENTRYPOINT 的默认参数;

指定启动容器时执行的命令,每个 Dockerfile 只能有一条 CMD 命令。如果指定了多条命令,只有最后一条会被执行。如果用户启动容器时候指定了运行的命令,则会覆盖掉 CMD 指定的命令。

以上就是准备一个简单的Dockerfile。
然后使用docker docker build -t <镜像名> -f <Dockerfile路径> 就行了,注意了要是
docker build -t <镜像名> . 没有指定Dockerfile文件的位置,加了一个‘,’,就是默认为Dockerfile为当前文件路径。

完成镜像的构建之后,启动镜像就行了。
docker run -d --镜像名称 文件 -p 定义端口号0000:0000