赞
踩
一、基础配置
1.下载更新yum工具管理
sudo yum update -y
如果容器内使用不了vim 可以在容器内输入以下命令
apt-get update
apt-get install vim -y
2.安装主题工具
yum install -y zsh
二、安装docker容器
1.下载软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
2.设置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.安装docker
yum install docker-ce -y
4.启动并加入开机启动
systemctl start docker
systemctl enable docker
输入 docker -v 验证是否安装成功,出现(Docker version 20.10.17, build 100c701) 版本信息则安装成功
docker常用命令
1.docker images 查看所有镜像
2.docker ps / docker ps -a 查看正在运行的容器/所有容器
3.docker ps -a 查看所有容器
4.docker rm / rmi NAME/ID 删除容器/删除镜像
5.docker NAME/ID 删除镜像 NAME(容器名称) ID(容器ID)
6.docker exec -it NAME/ID /bin/bash 进入容器内部
7.docker start / stop / restart NAME/ID 启动/停止/重启
8.docker top NAME/ID 查看容器内进程
9.docker inspect NAME/ID 查看容器相关信息
10.docker logs NAME/ID 输出容器日志
11.docker export -o test.tar NAME/ID 将容器进行打包保存到本地,文件类型为tar
12.cat test.tar |docker import - image_name:tag 将保存的容器文件导入到镜像库中
13.docker port NAME/ID 查看容器端口映射情况
14.docker cp NAME/ID : /docker/user/test.txt /main/user/file 从容器里面拷贝文件到宿主机 拷贝文件夹不需要指定文件名称
15.docker cp /main/user/test.txt NAME/ID : /docker/user/file 从宿主机中拷贝文件到容器
15.systemctl restart docker 重启服务
三、安装jenkins
1.获取jenkins镜像
docker pull jenkinsci/blueocean
四、安装redis
1.获取redis镜像
docker pull redis
2.创建文件夹
mkdir /home/docker/images/redis
mkdir /home/docker/images/redis/data
ridis.conf文件上传到/home/docker/images/redis 目录下
3.创建并启动服务
docker run -p 6379:6379 --name redis --sysctl net.core.somaxconn=1024 -v /home/docker/images/redis/redis.conf:/etc/redis/redis.conf -v /home/docker/images/redis/data:/data -e TIME_ZONE="Asia/Shanghai" -e TZ="Asia/Shanghai" -d redis redis-server /etc/redis/redis.conf --appendonly yes
4.配置主从
获取配置文件 wget http://download.redis.io/redis-stable/redis.conf
修改主库配置文件
# bind 127.0.0.1 # 注释当前行,表示任意ip可连
daemonize yes # 让redis服务后台运行
requirepass 123456 # 设定密码
修改从库配置文件
# bind 127.0.0.1
daemonize yes
requirepass 123123 # 从库密码,可选配置
# <masterip>表示主库所在的ip,而<masterport>则表示主库启动的端口,默认是6379
slaveof 127.0.0.1 6300
# 主库有密码必需要配置,<master-password>代表主库的访问密码
masterauth 123456
命令方式
1.redis-cli
2.slaveof xxxxxxx
3. CONFIG SET masterauth xxxx
事项:
查看容器内部端口 docker inspect 容器 找到IPAddress
1.端口占用
netstat -tanlp 查看端口,使用 kill PID 杀掉占用端口
2.设置密码 --requirepass 123456
3.解决bug 在宿主机中执行 echo 1 > /proc/sys/vm/overcommit_memory
五、安装mysql(5.7)
1.获取mysql镜像
docker pull mysql:5.7
2.创建mysql文件夹管理
mkdir /home/docker/images/mysql
cd /home/docker/images/mysql
echo $PWD
3.创建启动服务并设置初始密码
docker run --name mysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:5.7
4.进入容器
docker exec -it -u root mysql /bin/bash
5.输入密码
mysql -u root -p"123456"
6.开启远程访问
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '服务器登陆密码';
7.刷新配置
flush privileges;
CTRL + shift +d退出
六、安装nginx
1.获取nginx镜像
docker pull nginx
2.创建nginx文件夹管理
mkdir /home/docker/images/nginx
mkdir /home/docker/images/nginx/www
mkdir /home/docker/images/nginx/conf
mkdir /home/docker/images/nginx/logs
4.上传nginx配置文件 nginx.conf 到
/home/docker/images/nginx/conf 目录
配置文件内容如:
user nginx;
worker_processes 2;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name 120.76.136.43;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://www.baidu.com;
}
}
#前端访问平台
server {
listen 80;
server_name iot5g.gdssly.cn;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://120.76.136.43:18080;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
#前端访问移动端
server {
listen 80;
server_name iotcardwechat.gdssly.cn;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://120.76.136.43:18000;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
#后端接口
server {
listen 80;
server_name openapi.gdssly.cn;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://120.76.136.43:18888;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
server {
listen 80;
server_name iotcardpro.gdssly.cn;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://14.215.49.31:19000;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
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 config
gzip_static on;
gzip_proxied expired no-cache no-store private auth;
gzip_http_version 1.1;
gzip on;
gzip_buffers 32 4K;
gzip_min_length 1k;
gzip_comp_level 6;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml application/html text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
include /etc/nginx/conf.d/*.conf;
}
3.创建并启动服务
docker run -d -p 80:80 --name nginx -v /home/docker/images/nginx/www:/usr/share/nginx/html -v /home/docker/images/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/docker/images/nginx/logs:/var/log/nginx nginx
启动服务
docker start nginx
七、创建JAVA jar包服务
1.获取java版本(1.8)创建文件夹管理以及上传jar包
docker pull kdvolder/jdk8
mkdir /home/docker/images/java
2.创建docker.sh脚本文件
# 源jar路径 即jenkins构建后存放的路径
#SOURCE_PATH=/dockerdatas/docker_jenkins/jenkins_home/workspace/xxl-job-iot/xxl-job-admin/target
cp /docker/images/jenkins/workspace/定时调度任务/xxl-job-admin/target/xxl-job-admin-2.3.1-SNAPSHOT.jar ./xxljob.jar
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=xxl-job
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
# 构建docker镜像
if [ -n "$IID" ]; then
echo "存在$SERVER_NAME镜像,IID=$IID"
docker stop $SERVER_NAME # 停止运行中的容器
docker rm $SERVER_NAME ##删除原来的容器
docker rmi $IID ## 删除原来的镜像
else
echo "不存在$SERVER_NAME镜像,开始构建镜像"
fi
# 构建镜像
cd /docker/images/xxl-job
docker build -t $SERVER_NAME .
# 运行容器
# --name docker-test 容器的名字为自定义
# -d 容器后台运行
# -p 8090:8090 指定容器映射的端口和主机对应的端口都为8090
# -v /usr:/usr 将主机的目录挂载到容器的目录中
docker run --name $SERVER_NAME -v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime -v $BASE_PATH:$BASE_PATH -d -p 8010:18888 $SERVER_NAME
echo "$SERVER_NAME容器创建完成"
3.创建Dockerfile文件
# jdk 是一个已有的包含 jdk 的镜像
FROM kdvolder/jdk8
# 作者签名
MAINTAINER LXM
# 简化 jar 的名字路径 (#:表示注释掉)
COPY xxljob.jar /xxljob.jar
# 执行 java -jar 命令 (CMD:在启动容器时才执行此行。RUN:构建镜像时就执行此行)
CMD java -jar /xxljob.jar
# 设置对外端口为 18010
EXPOSE 8010
4.注意事项:
设置文件类型 set ff=unix
设置文件权限 chmod u+x file.sh
执行脚本文件 ./文件名.sh
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。