赞
踩
yum -y update
有旧则 卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装必须的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
配置docker仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum源或者出现配置yum源之后,通常都会使用yum makecache 生成缓存
yum makecache fast
创建目录
mkdir -p /data
安装docker
yum -y install docker-ce
设置随系统启动
systemctl enable docker
启动 Docker 后台服务
systemctl start docker
#查询已经安装的Docker包
yum list installed | grep docker
#查看Docker版本
docker version
#测试运行 hello-world
docker run hello-world
安装JDK_11
yum install java-11-openjdk-devel.x86_64
查看JDK版本信息
java -version
yum install screen
安装 mysql
docker pull mysql
PS:要是想解决 大小写忽略 +8小时时差
在mysql文件夹中的 conf 目录添加 mysql.cnf文件
[mysqld]
server-id=1
skip-host-cache
skip-name-resolve
collation-server = utf8mb4_general_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4
# 大小写忽略
lower_case_table_names=1
default-time-zone='+08:00'
# 8.0 分组问题
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
将数据存储到容器内部
docker run -p 3306:3306 --name mysql --restart=always -v /data/mysql/conf:/etc/mysql/conf.d -v /data/mysql/logs:/logs -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql
模板:
docker run -p 3307:3306 --name mysql3307 --restart=always -v /data/mysql3307/conf:/etc/mysql/conf.d -v /data/mysql3307/logs:/logs -v /data/mysql3307/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=Quokka -d mysql
docker run -p '对外端口':'对内端口' --name 'docker名称' --restart=always -v /data/mysql3306/conf:/etc/mysql/conf.d -v /data/mysql3306/logs:/logs -v /data/mysql3306/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD='密码' -d mysql
执行Mysql
docker exec -it mysql /bin/bash
进入Mysql
mysql -r -p
密码
use mysql
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
FLUSH PRIVILEGES;
exit
exit
安装 redis
docker pull redis
不加密码:
docker run -p 6379:6379 --name redis --restart=always -v /data/redis/data:/data -d redis redis-server --appendonly yes
加密码::
docker run -p 6380:6380 --name redis6380 --restart=always -v /data/redis6380/data:/data -d redis redis-server --requirepass "密码" --appendonly yes
安装 MongoDB
docker pull mongo:4.0
启动 mongodb:
docker run -p 27017:27017 --name mymongo --restart=always -v /data/mymongo/data:/data/db -d mongo:4.0
为mongoDB添加管理员用户
docker exec -it 31c8628f1379 mongo admin
db.createUser({ user: 'root', pwd: 'root', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
exit
测试用户是否添加成功
docker exec -it 31c8628f1379 mongo admin
db.auth("root","root");
为mongoDB添加用户
docker exec -it 31c8628f1379 mongo admin
db.createUser({ user: 'Quokka', pwd: '123456', roles: [ { role: "readWrite", db: "app" } ] });
exit
测试用户是否添加成功
docker exec -it 31c8628f1379 mongo admin
db.auth("Quokka","123456");
安装 nginx
docker pull nginx
mkdir -p /data/nginx/www /data/nginx/logs /data/nginx/conf
touch /data/nginx/conf/nginx.conf
docker run -d -p 80:80 --name nginx --restart=always -v /data/nginx/www:/usr/share/nginx/html -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/logs:/var/log/nginx nginx
nginx 配置文件
文件存放位置:
user root;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name _;
rewrite ^(.*)\#(.*)$ $1#$2 redirect;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
}
测试页面能否访问:
访问路径方式:
docker run -d -v /home/vsftpd:/home/vsftpd -p 20:20 -p 21:21 -p 21100-21110:21100-21110 -e FTP_USER=test -e FTP_PASS=test --name vsftpd fauria/vsftpd
docker run -d -v /data/nginx/www/HotUpdate:/home/vsftpd/fastftp -p 2020:20 -p 2021:21 -p 21100-21110:21100-21110 -e FTP_USER=fastftp -e FTP_PASS=4rfv%TGB --name vsftpd fauria/vsftpd
docker run -d -v /data/nginx8081/www/ftp:/home/vsftpd/fastftp -p 2020:20 -p 2021:21 -p 21100-21110:21100-21110 -e FTP_USER=fastftp -e FTP_PASS=4rfv%TGB --name vsftpd fauria/vsftpd
docker run -d -p 21:21 -p 4559-4564:4559-4564 -v /home/vsftpd/test:/srv -e FTP_USER=test -e FTP_PASSWORD=test panubo/vsftpd
docker run -d -v /home/ftpusers/test:/home/ftpusers/test -p 21:21 -p 30000-30009:30000-30009 -e "PUBLICHOST=localhost" stilliard/pure-ftpd:hardened --name ftpd_server
docker exec -it ftpd_server /bin/bash
pure-pw useradd test -u ftpuser -d /home/ftpusers/test
chown ftpuser:ftpgroup /home/ftpusers/test
pure-pw mkdb
docker run -d --name ftpd_server -p 21:21 -p 30000-30009:30000-30009 -e "PUBLICHOST=localhost" -v /home/ftpusers/test:/home/ftpusers/test stilliard/pure-ftpd:hardened
docker exec -it ftpd_server /bin/bash
pure-pw useradd test -u ftpuser -d /home/ftpusers/test
chown ftpuser:ftpgroup /home/ftpusers/test
pure-pw mkdb
1.Docker拉取ElasticSearch镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.2
2.启动容器
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2
或者
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" docker.elastic.co/elasticsearch/elasticsearch:6.3.2
3.配置跨域访问
# 进入容器
docker exec -it es /bin/bash
# 进入配置文档
cd config/
# 修改vi elasticsearch.yml
vi elasticsearch.yml
# 加入以下配置
http.cors.enabled: true
http.cors.allow-origin: "*"
# 重启容器
docker restart es
4.在浏览器输入服务器地址端口9200出现以下json数据
5.ElasticSearch可视化管理工具elasticsearch-head
拉取镜像
docker pull mobz/elasticsearch-head:5
6.运行容器
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
7.输入服务器地址9100端口界面如下
startup-all.sh
#!/bin/bash
pid1=`ps -ef|grep live_Gateway.jar|grep -v grep|awk '{print $2}' `
pid2=`ps -ef|grep live_Live.jar|grep -v grep|awk '{print $2}' `
pid3=`ps -ef|grep live_game.jar|grep -v grep|awk '{print $2}' `
pid4=`ps -ef|grep live_Link.jar|grep -v grep|awk '{print $2}' `
pid5=`ps -ef|grep vue-admin.jar|grep -v grep|awk '{print $2}' `
pid6=`ps -ef|grep live_Proxy.jar|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0
if [ ! -z "${pid1}" ]; then
sudo kill -12 $pid1
fi
if [ ! -z "${pid2}" ]; then
sudo kill -12 $pid2
fi
if [ ! -z "${pid3}" ]; then
sudo kill -12 $pid3
fi
if [ ! -z "${pid4}" ]; then
sudo kill -12 $pid4
fi
if [ ! -z "${pid5}" ]; then
sudo kill -12 $pid5
fi
if [ ! -z "${pid6}" ]; then
sudo kill -12 $pid6
fi
#sudo kill -12 $pid2
#sudo kill -12 $pid3
#sudo kill -12 $pid4
#sudo kill -12 $pid5
#sudo kill -12 $pid6
echo "关闭所有Java进程"
sleep 3
#cd /data/live/Master
#./startup.sh start
#echo "Master服 启动"
#sleep 2
#cd /data/live/DataBase
#./startup.sh start
#echo "DB服 启动"
sleep 1
cd /data/live/Gateway
./startup.sh start
echo "http服 启动"
sleep 1
startup.sh
#!/bin/bash
#这里可替换为你自己的执行程序,其他代码无需更改
APP_NAME=live_Gateway.jar
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动方法
start(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is already running. pid=${pid} ."
ps -ef | grep java
else
nohup java -Xms502m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -XX:MaxNewSize=512m -jar $APP_NAME > /dev/null 2>&1 &
ps -ef | grep java
fi
}
#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
kill -9 $pid
else
echo "${APP_NAME} is not running"
fi
}
#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#重启
restart(){
stop
start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
防火墙
systemctl stop firewalld.service // 关闭防火墙
systemctl disable firewalld.service // 设置开机禁用防火墙
systemctl start firewalld // 启动防火墙
systemctl enable firewalld.service // 设置开机启用防火墙
systemctl status firewalld // 检查防火墙状态
重启 Docker 后台服务
systemctl restart docker
查询已经安装的Docker包
yum list installed | grep docker
查看Docker版本
docker version
测试运行 hello-world
docker run hello-world
查看pull下拉的镜像
docker images
查看运行的容器
docker ps
停止容器
docker stop 容器Id
删除容器
docker rm 容器Id
服务器部署操作
1:打包 得到所要项目的 jar包 + conf(服务器ip 端口 数据库)
2:文件放入服务器指定文件夹中(wab jar包 分开放)
3: screen -S 文件名 新建窗口
screen -r 文件名 进入窗口
screen -ls 查看所有窗口
screen -d 窗口id 关闭窗口
ctrl + A -> d 出来
-> k 关闭窗口
4 运行java -jar 名字
docker 启动容器参数说明:docker run
di:表示守护式,
name:容器名称,
-p 映射端口,
-e 添加一个参数 密码 ,最后一位表示以哪个镜像创建的容器
-v 表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。