docker安装MySQL、redis、Nginx使用笔记

需进入root用户权限

docker安装

https://docs.docker.com/engine/install/
docker官网教程

1、安装mysql

下载images :docker pull mysql:5.7.32
docker镜像地址
创建本地文件:mkdir -p /mysql/{conf,data,log}

kong8@kong:/mysql/conf$ sudo vim my.cnf

[client]
default_character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection=utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake
skip-name-resolve

运行+配置文件映射到本地
docker run -p 3306(主机的端口):3306(mysql容器的端口) --name

docker run -p 3306:3306 --name mysql \
-v /mydoc/mysql/log:/var/log/mysql \
-v /mydoc/mysql/data:/var/lib/mysql \
-v /mydoc/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7.32

容器查看:

root@kong:/# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
659f4d0f12d7        nginx:stable-perl   "/docker-entrypoint.…"   40 minutes ago      Up 16 minutes       0.0.0.0:80->80/tcp                  nginx
1311a2ce42cc        mysql:5.7.32        "docker-entrypoint.s…"   3 weeks ago         Up 16 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql
9ee73e2f9e02        redis:buster        "docker-entrypoint.s…"   3 weeks ago         Up 16 minutes       0.0.0.0:6379->6379/tcp              redis

登录容器:

docker exec -it 1311a2ce42cc /bin/bash

root@kong:/# docker exec -it 1311a2ce42cc /bin/bash
root@1311a2ce42cc:/# ls
bin   dev			  entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint-initdb.d  etc		 lib   media  opt  root  sbin  sys  usr
root@1311a2ce42cc:/# 

在这里插入图片描述

2、安装redis

下载images :docker pull redis:buster
docker镜像地址
创建本地文件:mkdir -p /mydoc/redis/conf
touch /mydoc/redis/conf/redis.conf

数据持久化
vim /mydoc/redis/conf/redis.conf

appendonly yes

运行+配置文件映射到本地

docker run -p 6379:6379 --name redis \
-v /mydoc/redis/data:/data \
-v /mydoc/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis:buster redis-server /etc/redis/redis.conf

容器查看:

root@kong:/# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
659f4d0f12d7        nginx:stable-perl   "/docker-entrypoint.…"   40 minutes ago      Up 16 minutes       0.0.0.0:80->80/tcp                  nginx
1311a2ce42cc        mysql:5.7.32        "docker-entrypoint.s…"   3 weeks ago         Up 16 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql
9ee73e2f9e02        redis:buster        "docker-entrypoint.s…"   3 weeks ago         Up 16 minutes       0.0.0.0:6379->6379/tcp              redis

数据测试

root@kong:/mydoc# docker exec -it 9ee73e2f9e02 redis-cli
127.0.0.1:6379> set a val_123
OK
127.0.0.1:6379> get a
"val_123"

退出-重启
127.0.0.1:6379> exit
root@kong:/mydoc# docker restart redis
redis
root@kong:/mydoc# docker exec -it 9ee73e2f9e02 redis-cli
127.0.0.1:6379> get a
"val_123"

3、安装Nginx

下载images :docker pull nginx:stable-perl
docker镜像地址
创建本地文件:mkdir -p /nginx/{conf,conf.d,html,logs}
/nginx/conf/nginx.conf

user  nginx;
worker_processes  1;
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;
    include /etc/nginx/conf.d/*.conf;
}

/nginx/conf.d/default.conf

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
    #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;
    }
}

运行+配置文件映射到本地

    docker run -it --name 别名 -d 镜像ID(镜像名称) 
    A:docker run --name nginx -d -p 80:80 nginx:stable-perl
    B:docker run --name nginx -d -p 80:80  -v /nginx/html:/usr/share/nginx/html -v /nginx/conf.d:/etc/nginx/conf.d -v /nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /nginx/logs:/var/log/nginx nginx:stable-perl
    --name="容器新名字":为容器指定一个名称;
    -i:以交互模式运行容器,通常与-t或者-d同时使用;
    -t:为容器重新分配一个伪输入终端,通常与-i同时使用;
    -d: 后台运行容器,并返回容器ID;
    -P: 随机端口映射,容器内部端口随机映射到主机的端口
    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
    docker logs --tail="10" nginx
    docker exec -it nginx /bin/bash

http://localhost:80

设置开机启动

docker update [nginx|mysql|redis] --restart=always

猜你喜欢

转载自blog.csdn.net/qq_42476834/article/details/112675953