docker环境运行

docker离线版本安装

将docker 的安装包及其依赖包上传到指定目录里:
    
// 强制安装docker服务
[root@localhost rpm安装包]# rpm -ivh *.rpm  --force --nodeps
//--nodeps  安装时不检查依赖关系
//--force   强制安装
 
// 开启服务
[root@localhost package]# systemctl start docker
 
// 开机自启docker服务 或 “chkconfig docker on” 命令	
[root@localhost ~]# systemctl enable docker

使用 docker save 命令,将该 nginx镜像归档成文件,并写入本地文件中。

docker save -o mynginx.tar 镜像id

使用 docker load 命令将刚归档的镜像文件,载入到镜像。

参数

描述

docker load -i

指定导出的文件。

docker load -q

精简输出信息。

docker load -i mynginx.tar

可以使用命令:docker tag [image id] [name]:[版本] 命名镜像名以及版本

docker tag 4f380adfc10f nginx:latest

mariadb运行

docker run --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=dnhl1234@mariadbPWD -v /data/mariadb/data:/var/lib/mysql -d mariadb

mysql运行

#mysql启动
docker run --name mysql5.7 -p 3306:3306 -d -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 2c9028880e58


docker container update --restart=always d72e7e910ab6 设置容器自启动随docker的启动而启动

redis

docker run --name redis -p 6379:6379 -d  镜像id

docker run --name redis -p 6379:6379 -d --restart=always redis:latest redis-server --appendonly yes --requirepass "123456"

auth “password”  认证

mariadb 运行

后台部署

后台部署基础镜像为tomcat

创建文件例如需要打 common.war包 pwd(/data/tms/common)

在指定文件夹下创建 vi Dockerfile

FROM tomcat:latest
#维护者
MAINTAINER yj
#将webapp下的全部删除
RUN rm -rf /usr/local/tomcat/webapps/*
#将target下的xx.war拷贝到/usr/local/tomcat/webapps/下
ADD ./*.war /usr/local/tomcat/webapps/ROOT.war   #ROOT.war 使用大写默认就是端口号
#端口
EXPOSE 8080
#设置启动命令
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]

方便持续使用创建 .sh执行文件

vi run.sh

docker rm -f common
docker rmi common:latest
docker build -t common:latest . #生成镜像
docker run -d -p 8081:8080 --restart=always --name=common common:latest

防火墙

#查看状态
systemctl status firewalld.service
#启动
systemctl start firewalld.service
#重启
systemctl restart firewalld.service
#停止
systemctl stop firewalld.service
#查看规则
firewall-cmd --list-all
#查询端口是否开放
firewall-cmd --query-port=8080/tcp
#开放8080端口
firewall-cmd --permanent --add-port=8080/tcp
#移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#添加路由规则
firewall-cmd --permanent --add-rich-rule=“rule family=“ipv4” source address=” 192.168.1.100" port protocol=“tcp” port=“3306” accept"
#附:如果需要删除规则,参考
firewall-cmd --permanent --remove-rich-rule=“rule family=“ipv4” source address=” 192.168.1.100" port protocol=“tcp” port=“3306” accept"

前端部署

前端运行基础镜像

同理创建 Dockerfile pwd(/data/tms/front)

# Dockerfile内容
# 在容器外编译---job_compile job_build
FROM nginx:latest
#维护者
MAINTAINER cyj
COPY ESafe/  /usr/share/nginx/html/

编辑运行文件 .sh

docker rm -f tmsfront
docker rmi tmsfront:latest
docker build -t tmsfront:latest .
docker run --name tmsfront -d -p 80:80  tmsfront

开发环境部署

1.安装Java

指定目录添加文件.gz

pwd(/user/local/java)

解压

tar -zxvf jdk-8u161-linux-x64.tar.gz
#变更目录名
mv jdk1.8-161 jdk8

环境变量配置:

vi /etc/profile
# 最后一行插入
export JAVA_HOME=/usr/local/java/jdk8
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin


# 更新配置文件 source命令通常用于重新执行刚修改的初始化文档,如 .bash_profile 和 .profile 这些配置文件。
cd /etc

source profile

或者

JAVA_HOME=/usr/local/java/jdk8
CLASSPATH=$JAVA_HOME/lib/
CATALINA_HOME=/usr/local/tomcat8                  
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export PATH JAVA_HOME CLASSPATH CATALINA_HOME

安装tomcat

解压:

tar -zxvf apache-tomcat-8.5.59.tar.gz
#变更目录名
mv apache-tomcat-8.5.59 tomcat8

启动:

#tomcat安装好之后和windows的tomcat目录一致
#进入到tomcat的bin目录启动tomcat
cd /bin
./startup.sh

停止

./shutdown.sh

运行多个tomcat注意事项 ,进入tomcat文件下面的conf文件夹中 vi server.xml

一定不能重复 停止的时候如果一样将都停止
<Server port="8001" shutdown="SHUTDOWN">


访问端口
<Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

redis离线安装

下载获得redis-5.0.4.tar.gz后将它放入我们的Linux目录/opt

进行解压

tar -zxvf redis-5.0.4.tar.gz

解压后得到redis-5.0.4 进入目录

1.执行make命令

此时出现错误解析

/bin/sh: cc: 未找到命令
因为linux没有gcc依赖

这里有各种rpm包下载地址

http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/

获取到准备好的gcc相关依赖 执行

rpm -ivh *.rpm  --force --nodeps

安装好gcc后 再次执行 make命令

会报这个错误 :zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录

运行make distclean
之后再make
如果make完成后继续执行make install

docker 离线安装注册服务 docker离线安装部署 linux_docker

修改redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动
将默认的redis.conf(/opt/redis/redis.conf)拷贝到自己定义好的一个路径下,比如/myconf
启动
/usr/local/bin目录下运行redis-server,运行拷贝出存放了自定义conf文件目录下的redis.conf文件
redis-sercer /myconf/redis.conf

mysql安装

准备好的压缩包解压后

移动并且重命名

mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql

cd/user/local

创建mysql用户组和用户并修改权限

groupadd mysql
useradd -r -g mysql mysql

创建数据目录并赋予权限

mkdir -p  /data/mysql              #创建目录
chown mysql:mysql -R /data/mysql   #赋予权限

docker 离线安装注册服务 docker离线安装部署 linux_docker_02

配置my.cnf

vim /etc/my.cnf

内容如下

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

初始化数据库

进入mysql的bin目录

cd /user/local/mysql/bin

初始化

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

查看密码

cat /data/mysql/mysql.err

docker 离线安装注册服务 docker离线安装部署 linux_docker 离线安装注册服务_03

启动mysql,并更改root 密码

先将mysql.server放置到/etc/init.d/mysql中

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

启动

service mysql start
 
ps -ef|grep mysql

修改密码

首先登录mysql,前面的那个是随机生成的。

./mysql -u root -p   #bin目录下

再执行下面三步操作,然后重新登录。

SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

docker 离线安装注册服务 docker离线安装部署 linux_mysql_04

这里主要执行下面三个命令(先登录数据库)

use mysql                                            #访问mysql库
update user set host = '%' where user = 'root';      #使root能再任何host访问
FLUSH PRIVILEGES;                                    #刷新

nginx

1.在安装Nginx之前,需确保系统已经安装了gcc、 openssl-devel、 pcre-devel和zlib-devel软件库.

所有资源包下载地址:https://pan.baidu.com/s/1M9O9YRdeUzL-QEgTzzn6rw

2.创建临时目录nginx_install存放安装过程中需用到的依赖文件,装完可删除:

mkdir /usr/local/nginx_install

3.将资源包上传到nginx目录:

4.检查gcc、g++环境:

gcc --version
g++ --version

docker 离线安装注册服务 docker离线安装部署 linux_linux_05

5.pcre安装(用于url rewrite):

# 解压pcre
tar -zxvf pcre-8.38.tar.gz
# 进入解压后的目录
cd pcre-8.38
# 配置
./configure
# 编译
make
# 安装
make install

6.zlib安装(用于gzip压缩):

# 解压zlib
tar -zxvf zlib-1.2.11.tar.gz
# 进入解压后的目录
cd zlib-1.2.11
# 配置
./configure
# 编译
make
# 安装
make install

7.安装openssl(用于https服务):

# 解压openssl
tar -zxvf openssl-1.1.0h.tar.gz
# 进入到解压后的目录
cd openssl-1.1.0h
# 配置
./config
# 编译
make
# 安装 
make install

8.安装nginx:

# 解压nginx
tar -zxvf nginx-1.14.0.tar.gz
# 进入到解压后的目录
cd nginx-1.14.0
# 配置
./configure
# 编译
make
# 安装
make install

9.打开配置文件:

vim /etc/rc.d/rc.local

10.设置开机自启动,在rc.local文件中,加入:/usr/local/nginx/sbin/nginx

/usr/local/nginx/sbin/nginx

docker 离线安装注册服务 docker离线安装部署 linux_linux_06

11.增加rc.local脚本权限:

chmod +x /etc/rc.d/rc.local
#安装完成之后,会在用户目录/usr/local下生成nginx文件夹,进入到nginx的sbin目录启动nginx
cd /usr/local/nginx/sbin
#启动命令
./nginx
#安装nginx
#关闭命令  s shutdown 关闭的意思  stop 停止
./nginx -s stop
#重新加载
./nginx -s reload
#开放80端口
firewall-cmd --permanent --add-port=80/tcp
#重启防火墙
firewall-cmd --reload
server {
        listen       80;
        server_name  localhost;
        location / {
            root   /var/www/front;
            index  index.html index.htm;
        }
		
		
    }


 server {
        listen       1288;
        server_name  localhost;
        location / {
            root   /var/www/back;
            index  index.html index.htm;
        }
                
                
    }

运行jar包 输出日志文件并查看

cd到xxx.jar目录下执行:

nohup java -jar external_service-1.0.jar > external.log 2>&1 & --运行jar包并将日志写入到xxx.log中

tail -f xxx.log  --查看日志文件