docker入门+部署前端项目

333 阅读1分钟

1、docker安装与配置

1安装依赖

yum install -y yum-utils \device-mapper-persistent-data \lvm2

2设置yum源

国内推荐使用aliyun:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3安装版本

查看docker版本列表

yum list docker-ce --showduplicates | sort -r

安装合适的版本

#yum install -y docker-ce-19.03.9-3.el7 docker-ce-cli-19.03.9-3.el7 containerd.io
yum install -y docker-ce-20.10.3-3.el7 docker-ce-cli-20.10.3-3.el7 containerd.io

4 启动docker

systemctl start docker

5 配置镜像仓库加速

vi /etc/docker/daemon.json

{
    "mtu":1450,
    "registry-mirrors": [
    	# 国内镜像仓库
      	"http://hub-mirror.c.163.com",
        "https://1nj0zren.mirror.aliyuncs.com",
        "https://docker.mirrors.ustc.edu.cn",
        "http://f1361db2.m.daocloud.io",
        "https://registry.docker-cn.com"
        
    ]
}

** 注意json文件一定不能有注释和多余的逗号

6 重启daemon和docker

systemctl daemon-reload 
systemctl restart docker

7 安装docker-compose

下载docker

curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

给docker-compose执行权限,运行命令:

chmod +x /usr/local/bin/docker-compose

查看docker-compose安装版本

docker-compose --version

2、安装Jdk

2.1下载jdk

wget https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html#license-lightbox

2.2解压jdk

tar -zxf jdk-8u251-linux-x64.tar.gz

2.3重命名

mv jdk-8u251-linux-x64 JDK8

2.4添加环境变量

JAVA_HOME=/software/JDK8
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH

2.5更新环境变量

source /etc/profile

2.6 查看安装是否成功

java -version
javac -version

3、安装nginx

3.1 配置nginx文件

mkdir -p /data/docker_data/nginx/conf
user  root;
worker_processes  4;
worker_rlimit_nofile 65535; 

error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
	multi_accept on; 
	use epoll; 
	worker_connections 65535; 
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    server_names_hash_bucket_size 256; 
    large_client_header_buffers 4 256k;
    fastcgi_buffers 32 8k;
	client_header_buffer_size 256k; 
    client_max_body_size           128m;# 允许客户端请求的最大单文件字节数,上传的文件
    client_body_buffer_size        1024k;# 缓冲区代理缓冲用户端请求的最大字节数
    client_header_timeout          30;
    client_body_timeout            30;
    send_timeout                   30;
	proxy_max_temp_file_size       2048m;#临时文件最大大小

    sendfile        on;
    #tcp_nopush     on;
    tcp_nopush      on;
    keepalive_timeout  120;
    tcp_nodelay on;

	#跨域
    #add_header Access-Control-Allow-Origin *;
    #add_header Access-Control-Allow-Headers X-Requested-With;
    #add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

    #gzip  on;

    server {
        listen       7001;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page  404              /404.html;
    }


#配置转发

include vhosts/*.conf;
}

3.2 运行nginx容器

docker run  --net="host"  -id -p 7001:7001 -p 18443:18443 --name nginx-server -v /data/docker_data/nginx/www:/usr/share/nginx/html -v /data/docker_data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/docker_data/nginx/logs:/etc/nginx/logs/ -v /data/docker_data/nginx/conf/ssl_certs:/etc/nginx/ssl_certs -v /data/docker_data/nginx/conf/vhosts:/etc/nginx/vhosts --privileged=true -u root --restart=unless-stopped nginx

3.3 查看防火墙是否开放7001端口

firewall-cmd --query-port=7001/tcp

3.4 开启7001端口

firewall-cmd --zone=public --add-port=7001/tcp --permanent

3.5 重载防火墙

firewall-cmd --reload

4、 使用nginx部署前端项目

4.1 将前端项目压缩文件上传到/data/docker_data/nginx/www

4.2 解压前端包

# 如果没有unzip 先下载
yum -y install unzip
# 解压
unzip -o  xxx.zip

4.3 配置nginx

cd /data/docker_data/nginx/conf/vhosts
vi nginx.conf

#nginx.conf内容
#反向代理服务配置
upstream   access_api {
      server 192.192.192.113:8101 max_fails=1 fail_timeout=30s;

}
#websoceket 使用map
map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
}

server {
        listen 7001;   #协议访问端口号
        server_name 192.192.192.113; #域名
        root html;
        index index.html index.htm;
		location / {
            root   /usr/share/nginx/html/shianxinweb;
            index  index.html index.htm;
        }
        location /api {
            proxy_pass http://access_api;
            proxy_set_header Host      $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_connect_timeout 3600; 
            proxy_read_timeout 3600;
            proxy_send_timeout 3600;

        }
	location /images {
            alias   /usr/local/nginx/html/images/;
            autoindex on;	
        }
}

5.4 启动nginx

docker restart nginx-server

6、涉及到的其他命令

# 查看运行的容器
docker ps
# 查看所有容器
docker ps -a
# 暂停容器
docker stop nginx-server
# 删除容器(删除容器之前必须先暂停容器)
docker rm nginx-server
# 查看本地镜像
docker images
# 删除本地镜像
docker rmi imagename
# 下载
wget XXXXX