docker服务器基本环境安装教程

172 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

服务器基本环境安装教程(docker篇)

一、安装docker

1. 常用命令

#1.卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#2.需要的安装包
yum install -y yum-utils
#3.设置镜像的仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#默认是从国外的,不推荐
#推荐使用国内的
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更新yum软件包索引
yum makecache fast
#4.安装docker相关的 docker-ce 社区版 而ee是企业版
yum install docker-ce docker-ce-cli containerd.io
#6. 使用docker version查看是否按照成功
docker version
#7. 测试
docker run hello-world

# 先切换到root用户, 再执行以下命令
su root  

 # 启动docker
systemctl start docker

# 重启dokcer
systemctl restart docker 

 # 开机自动启动docker 
systemctl enable docker

2. 安装步骤

#第一步
yum install -y yum-utils
#第二步 设置国内仓库地址
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#第三步 更新yum软件包索引
yum makecache fast
#第四步 安装docker
yum -y install docker
#第五步 查看docker版本号
docker version
#第六步 设置开机自动启动docker
systemctl enable docker
#第七步 记得更新一下yum
yum update

3. 安装成功后如下

在这里插入图片描述

4. 修改Docker配置,让其可以通过IDEA链接

# 打开文件
vim /usr/lib/systemd/system/docker.service
# 修改ExecStart添加配置
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock \
# 重载配置
systemctl daemon-reload
# 重启docker服务
systemctl restart docker

下面第一张图不对,请看第二张图

在这里插入图片描述

在这里插入图片描述

二、安装Nginx环境

1. 安装nginx镜像

#第一步拉取镜像 确保docker 服务已启动
docker pull nginx

2. 查看镜像是否拉取成功

在这里插入图片描述

3. 启动容器并创建共享(容器内映射主机)

#命令
docker run --network mynet -p 80:80 -p 443:443 -v/home/nginx/ssl:/etc/nginx/home/nginx/ssl:rw -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -v /home/nginx/logs:/var/log/nginx:rw -v /home/nginx/conf/conf.d:/etc/nginx/conf.d:ro -v /home/nginx/html:/usr/share/nginx/html:rw -d --name nginx nginx
#解释
-v:  主机目录:容器内目录
-p:  主机端口:容器内端口
-d:  后台运行
--name: 容器运行后的名字
--network: 自定义网络    
    
docker run -p 80:80 -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro -v /home/nginx/logs:/var/log/nginx:rw -v /home/nginx/conf/conf.d:/etc/nginx/conf.d:ro -v /home/nginx/html:/usr/share/nginx/html:rw -d --name nginx nginx    

4. 启动并测试是否成功

在这里插入图片描述

在这里插入图片描述

附:中间会遇到文件创建成文件夹的问题,需要手动创建文件夹并写入文件。文件如下:

nginx.conf

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
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/logs/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

三、安装mysql数据库

1. 拉取mysql镜像

# 拉取镜像
docker pull mysql:8.0

2. 创建数据目录和配置文件

#在宿主机创建放置mysql的配置文件的目录和数据目录
mkdir -p /home/mysql/conf /home/mysql/data
#进行授权
chmod -R 755 /home/mysql/

3. 创建配置文件

vim /home/mysql/conf/my.cnf
#内容如下:
[client]
#socket = /usr/mysql/mysqld.sock
default-character-set = utf8mb4
[mysqld]
#pid-file        = /var/run/mysqld/mysqld.pid
#socket          = /var/run/mysqld/mysqld.sock
#datadir         = /var/lib/mysql
#socket = /usr/mysql/mysqld.sock
#pid-file = /usr/mysql/mysqld.pid
datadir = /usr/mysql/data
character_set_server = utf8mb4
collation_server = utf8mb4_bin
secure-file-priv= NULL
lower_case_table_names=1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Custom config should go here
!includedir /etc/mysql/conf.d/

4. 启动容器

docker run --net mynet -d -p 9000:3306 -vrollbackmysqldata:/var/mysql -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/usr/mysql/data -v /etc/localtime:/etc/localtime:ro -e MYSQL_ROOT_PASSWORD=lmk123456 --name mysql mysql:8.0

docker run -d -p 9000:3306 -vrollbackmysqldata:/var/mysql -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/usr/mysql/data -v /etc/localtime:/etc/localtime:ro -e MYSQL_ROOT_PASSWORD=lmk123456 --name mysql mysql:8.0

5. 修改mysql密码以及可访问主机

# 进入容器
docker exec -it mysql /bin/bash
# 链接mysql  密码就是启动时的密码 【MYSQL_ROOT_PASSWORD=lmk123456】
mysql -uroot -p
# 使用mysql库
use mysql
# 修改访问主机以及密码等,并设置为所有主机可访问
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'lmk123456';
# 刷新
flush privileges;

6. 运行成功截图

在这里插入图片描述

在这里插入图片描述

四、安装Redis

1. 拉取Redis镜像

# 拉取镜像
docker pull redis

2. 启动redis

# 创建文件夹
mkdir -p /home/redis/data //-p 表示递归创建 如果没有就创建
mkdir -p /home/redis/conf
vim /home/redis/conf/redis.conf //创建redis.conf 配置文件 文件内容如下

#bind 127.0.0.1 #允许远程连接
protected-mode no
appendonly yes #持久化
requirepass  #密码 

docker run --network mynet --ip 172.18.0.4 -d -p 6379:6379 --name redis redis

# 启动命令
docker run -d -p 9001:6379 -v /home/redis/data:/data -v /home/redis/conf/redis.conf:/etc/redis/redis.conf --name redis redis

# 容器内测试
执行docker exec -it my_redis redis-cli 命令,进入终端

在这里插入图片描述

3. 成功截图

在这里插入图片描述

IDEA 使用Docker打包教程

一、配置Docker连接

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、项目配置

在这里插入图片描述

三、注意!!!

在这里插入图片描述

拓展篇Nginx 做负载均衡

一、在nginx.conf中添加http内容

#定义一个负载均衡器名字叫serviceApi
upstream serviceApi {
    #后端的服务器
    server 42.192.195.59:9002;
    server 42.192.195.59:9003;
    server 42.192.195.59:9004;
}

在这里插入图片描述

二、在添加自己的server文件信息

# 其中 proxy_pass http://serviceApi 
# serviceApi 对应的就是http中维护的 serviceApi
server {
	#监听80端口
	listen       80;
	#域名服务,如果需要使用域名访问,则需要修改hosts文件
	server_name  42.192.195.59;
	location / {
		 #调用负载均衡器
		 proxy_pass http://serviceApi;
	}
}

在这里插入图片描述

三、测试Nginx负载均衡是否生效

1. 编写后台测试接口

/**
  * 测试 Nginx 负载均衡设置
  */
// localAddr 就是服务器的本地ip
@GetMapping("/nginx")
private AjaxResult Nginx(HttpServletRequest request) {
    String localAddr = request.getLocalAddr();
    String localName = request.getLocalName();
    int port = request.getServerPort();
    String str = "addr: " + localAddr + " ----  " + "localName: " + localName + " -----  " + "serverPort: " + this.serverPort + "  port: "+port;
    return AjaxResult.success(str);
}

// 启动运用
docker run -d -p 9002:8088 -v /etc/localtime:/etc/localtime:ro -v /home/uploadPath:/home/uploadPath:rw --name moddiary moddiary:1.0

2. 启动三个运用

在这里插入图片描述

3. 运行结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

拓展:Nginx做SSL证书绑定

一、下载免费的Nginx SSL证书

在这里插入图片描述

在这里插入图片描述

二、将Nginx下的证书放到服务器上

在这里插入图片描述

三、编写ssl.conf文件

server {
    listen 443 ssl http2;
    server_name www.e-eq.net;
    ssl_certificate home/nginx/ssl/1_www.e-eq.net_bundle.crt; 
    ssl_certificate_key home/nginx/ssl/2_www.e-eq.net.key;
    ssl_session_cache   shared:SSL:50m;
    ssl_session_timeout 4h;
    ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1;
	ssl_prefer_server_ciphers on;
	ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; 
	ssl_stapling on;
	ssl_stapling_verify on;
	ssl_buffer_size 4k;
    location /api/ {
        proxy_pass http://serviceApi;
    }
}

四、查看是否成功

在这里插入图片描述

五、访问测试

在这里插入图片描述