美文网首页运维
Docker安装与Nginx映射配置

Docker安装与Nginx映射配置

作者: 永动的图灵机 | 来源:发表于2020-04-05 18:08 被阅读0次

    环境:aliyun centos7.14

    安装Docker

    • 安装
    yum install docker
    
    • 检查
    docker -v
    
    • 服务
    systemctl status docker     // docker状态
    systemctl stop docker       // 停止
    systemctl start docker      // 启动
    systemctl restart docker    // 重启
    systemctl enable docker     // 开机启动
    
    • 检查
    docker run hello-world
    

    常用命令

    与常用的linux命令一样,使用docker --help即可查看docker COMMAND,下面是即将用到的几个命令

    • 从注册中心拉取镜像或仓库
    dokcer pull [image/repository name]:[verson]
    
    • 查看本地所有的镜像
    docker images
    
    • 查看运行的容器
    docker ps
    
    • 查看所有容器
    docker ps -a
    
    • 启动容器
    docker start [container]
    
    • 停止容器
    docker stop [container]
    
    • 安装容器,详细命令可查看,docker run --help
    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    

    -d :在后台运行一个容器

    -i : 运行容器

    -t : 进入命令行模式,及伪终端

    -name : 给容器取名

    -v : 目录映射,宿主机与容器之间的目录映射

    -p : 端口映射,宿主机与容器之间的端口映射

    • 退出容器
    exit
    

    实战: 容器部署

    配置镜像源

    Docker 镜像仓库配置国内镜像源,同maven一样,docker hub的远程仓库在国外,拉取速度慢,因此可以配置一个国内的镜像源

    • 编辑文件
    vim /etc/docker/daemon.json
    
    • 配置如下:
    {
        "registry-mirrors": [
            "https://docker.mirrors.ustc.edu.cn",
            "http://hub-mirror.c.163.com",
            "https://registry.docker-cn.com"
        ]
    }
    

    这4个地址分别对应中国国防科技,网易,docker中国

    也可以配置aliyun的docker仓库,具体可参考官网进行配置属于自己的仓库

    • 配置完成后,重启docker服务
    systemctl restart docker
    

    MySql使用

    安装

    • 拉取MySql镜像
    docker pull mysql:5.7
    

    具体版本可参考官网

    image
    • 创建容器-简易版
    docker run -di --name docker_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7
    
    • 创建容器-目录挂载版
    docker run --name docker_mysql -p 3306:3306 \
    -v /root/mydocker/mysql/log:/var/log/mysql \
    -v /root/mydocker/mysql/data:/var/lib/mysql \
    -v /root/mydocker/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=1234 \
    -d mysql:5.7
    

    log:日志
    lib:持久化数据文件
    etc:配置文件

    精简配置

    [client]
    default-character-set = utf8mb4
    
    [mysql]
    #auto-rehash
    default-character-set = utf8mb4
    
    [mysqld]
    port=3306
    # 禁用主机名解析
    skip-name-resolve
    # 默认的数据库引擎
    default-storage-engine = InnoDB
    
    ### 字符集配置
    character-set-client-handshake = FALSE
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    init_connect='SET NAMES utf8mb4'
    #行级日志
    binlog_format = row
    

    说明:

    -di : 创建一个守护式容器,创建后在后台运行

    --name docker_mysql : 容器命名为docker_mysql

    -p 33306:3306 : 端口映射,宿主机端口端口33306对应docker中3306端口

    -e MYSQL_ROOT_PASSWORD=1234 : 添加环境变量,mysql的root用户密码为1234

    -mysql:5.7 : 指定运行的镜像名称及其版本

    • 查看容器中mysql运行
    docker ps | grep docker_mysql
    
    • 查看docker_mysql信息
    docker inspect docker_mysql
    
    • 进入docker_mysql容器,并登录mysql
    [root@chet01 ~]# docker exec -it docker_mysql bash
    root@8cda7c791c74:/# mysql -uroot -p
    

    远程连接

    这里使用navicat作为图形化工具远程连接,效果如下

    image

    Nginx使用

    映射目录

    • 在宿主机中创建目录
    mkdir ~/mydocker/nginx/log
    mkdir ~/mydocker/nginx/conf
    mkdir ~/mydocker/nginx/html
    

    三个目录分别对应nginx中日志位置(/var/log/nginx/),配置文件位置(/etc/nginx/),项目位置(/usr/share/nginx/html)

    安装

    • 拉取镜像
    docker pull nginx
    
    • 运行容器
    docker run -di --name docker_nginx -d -p 80:80
     -v /root/mydocker/nginx/log:/var/log/nginx
     -v /root/mydocker/nginx/conf:/etc/nginx/conf.d
     -v /root/mydocker/nginx/nginx.conf:/etc/nginx/nginx/conf
     -v /root/mydocker/nginx/html:/lx/html nginx
    
    • 重启docker中nginx
    docker exec -it docker_nginx nginx -s reload
    
    • 验证nginx的配置
    docker exec -it docker_nginx nginx -t
    
    • 查看nginx挂载情况
    docker inspect docker_nginx | grep Mounts -A 20
    

    修改映射文件

    • 修改宿主机中nginx的配置文件
    vim ~/mydocker/nginx/conf/app.conf
    

    内容如下:

    server {
        listen       80;
        server_name  127.0.0.1;
    
        #charset koi8-r;
        #access_log  /var/log/nginx/host.access.log  main;
    
        location / {
            root   /lx/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;
        #}
    }
    
    • 配置访问页面
    vim ~/mydocker/nginx/html/index.html
    

    简要内容:

    <!DOCTYPE html>
    <html>
    <head>
        <title>Welcome to nginx!</title>
    </head>
    <body>
    <h1>hello nginx</h1>
    </body>
    </html>
    

    重启docker中的nginx,浏览器访问服务器地址

    image

    配置端口转发

    现在希望用户访问我的80端口时,直接跳转到我的hexo博客端口4000,只需要简单修改配置文件即可

    • 修改app.conf

    改动如下:

    image

    重启nginx,重新访问即可

    image

    如果你的aliyun配置了域名解析,访问域名也可以直接访问

    Redis使用

    安装

    docker pull redis
    

    启动

    docker run --name docker_redis -p 6379:6379 \
    -v /root/mydocker/redis/conf/redis.conf:/etc/redis/redis.conf \
    -d redis:latest redis-server /etc/redis/redis.conf 
    

    conf说明

    • 参考官网配置文件

    • 主要修改:

    #bind 127.0.0.1
    protected-mode no
    requirepass [password]
    daemonize yes
    

    进入客服端

    docker exec -it docker_redis redis-cli -a [password]
    

    连接测试如图

    image

    相关文章

      网友评论

        本文标题:Docker安装与Nginx映射配置

        本文链接:https://www.haomeiwen.com/subject/ujqpphtx.html