Win10 系统使用 Docker

安装

菜鸟教程

nginx

下载最新的nginx
docker pull nginx
启动nginx

为了方便,把nginx配置文件、静态文件和日志映射到容器外面

d:\\
# 创建文件夹
md \docker-data\nginx\conf
md \docker-data\nginx\conf.d
md \docker-data\nginx\logs
md \docker-data\nginx\www
# 等价于
md \docker-data\nginx\conf \docker-data\nginx\conf.d \docker-data\nginx\logs \docker-data\nginx\www

在启动nginx前要先创建nginx配置文件,不然会把配置文件当成文件夹

可以先启动一个nginx,复制配置文件到服务器上

docker run --name nginx -p 8081:80 -d nginx

# 复制容器 id 为 aacfa7df8232 的 nginx 容器的配置文件到服务器指定路径下
docker cp aacfa7df8232:/etc/nginx/nginx.conf D:\docker-data\nginx\conf\
docker cp aacfa7df8232:/etc/nginx/conf.d/default.conf D:\docker-data\nginx\conf.d\

修改 D://docker-data/nginx/conf.d/default.conf 就可以了,因为D://docker-data/nginx/conf/已经通过include引入了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;
    }

    location ^~ /api/ {
        proxy_pass http://192.168.40.26:9090/;
    }

    location ~ \.zz$ {
        proxy_pass   http://192.168.40.26:9090;
    }

    #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;
    }
}
启动nginx

注意:把命令合成一行,此处只是为了看起来更直观

docker run --name nginx -p 81:80 -d 
-v D:\docker-data\nginx\www:/usr/share/nginx/html 
-v D:\docker-data\nginx\conf/nginx.conf:/etc/nginx/nginx.conf 
-v D:\docker-data\nginx\conf.d/default.conf:/etc/nginx/conf.d/default.conf 
-v D:\docker-data\nginx\logs:/var/log/nginx 
nginx
进入nginx容器内部
docker exec -it nginx /bin/bash
设置开机自启
docker update nginx --restart=always

redis

下载最新的redis
docker pull redis
启动redis

在启动redis前要先创建redis配置文件,不然会把配置文件当成文件夹

# 创建配置文件文件夹
d:\\
# 创建文件夹
md \docker-data\redis\data
md \docker-data\redis\conf
# 等价于
md \docker-data\redis\data \docker-data\redis\conf

默认没有开启持久化,数据在内存中,重启服务器后数据会丢失,在配置文件中设置持久化

vi D:\docker-data\redis\conf\redis.conf
# 持久化 AOF
appendonly yes
启动redis

注意:把命令合成一行,此处只是为了看起来更直观

docker run -p 6379:6379 --name redis 
-v D:\docker-data\redis\data:/data 
-v D:\docker-data\redis\conf\redis.conf:/etc/redis/redis.conf 
-d redis redis-server /etc/redis/redis.conf
进入redis客户端
docker exec -it redis redis-cli
设置开机自启
docker update redis --restart=always

mysql

下载mysql5.7
docker pull mysql:5.7
mysql配置文件

创建mysql配置文件

d:\\
# 创建文件夹
md \docker-data\mysql\data
md \docker-data\mysql\conf
md \docker-data\mysql\log
# 等价于
md \docker-data\mysql\data \docker-data\mysql\conf \docker-data\mysql\log

新建配置文件

# 新建配置文件
vi D:\docker-data\mysql\conf\my.conf

配置文件内容如下

[client]
default-character-set = utf8

[mysql]
default-character-set = utf8

[mysqld]
init_connect=' SET collation_connection = utf8_unicode_ci'
init_connect=' SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
启动mysql
docker run -p 3306:3306 --name mysql 
-v D:\docker-data\mysql\conf:/etc/mysql/ 
-v D:\docker-data\mysql\log:/var/log/mysql 
-v D:\docker-data\mysql\data:/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=root 
-d mysql:5.7
进入容器内部
docker exec -it mysql /bin/bash
重启mysql
docker restart mysql

进入mysql容器内部,可以看到里面有在外面配置的配置文件my.conf

docker exec -it mysql /bin/bash

cat /etc/mysql/my.conf
设置开机自启
docker update mysql --restart=always

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!