终极离线情况下安装docker、mysql、jdk、启动项目
很多政府项目都处于一个网络封闭环境中,对于这样的情况,我们在使用linux安装一些软件就不能直接的通过网络获取,今天我就说下怎么在离线的情况情况下,做好这些。
一. 离线安装docker
其实离线安装docker非常简单,网络上也是有很多教程,我也来说下。
1.先在有网络的电脑上下载一个docker安装包。docker安装包下载(这里面有很多,需要下载同一个版本的3个文件)
2.将文件利用filezilla工具,将安装包存入linux系统某文件夹下,进入该文件夹。3.安装docker,将这三个包按照顺序分别安装即可,顺序的话,安装的时候会提示,如果顺序错了会提示有依赖包。
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