您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
二周 发布于2020年01月15日 16:43 最近更新于 2020年04月03日 23:29

原创 使用Docker搭建开发环境

3571 次浏览 读完需要≈ 11 分钟 Docker

内容目录

咱们做软件开发总是要安装各种软件,哪怕是在Windows上安装也需要你不断的点击下一步,非常繁琐,而且还要修改各种不同的配置文件。这里我们使用Docker来快速安装软件,并且统一配置和管理。

关于Docker的使用,请参考阮老师写的教程

这里用到的是docker-compose.它Docker官方提供的容器编排工具,配置化的管理容器之间的协作关系。用一个命令docker-compose up -d来启动一堆服务!简洁高效!

安装docker-compose

参考官方文档,安装完成后主要使用两个命令:

# 启动服务
$ docker-compose up
# 加上 -d 参数表示在后台运行
$ docker-compose up -d

# 停止服务
$ docker-compose down

安装mysql

首先创建一个目录来存放MySQL的配置文件和数据文件等,比如docker-mysql,然后在下面创建对应的文件:

  1. 创建文件:my.cnf存放MySQL的配置文件
  2. 创建文件夹:data 文件夹,存放MySQL数据
  3. 创建文件:docker-compose.yml 配置MySQL服务
$ cat my.cnf 
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
sql_mode        = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# Custom config should go here
!includedir /etc/mysql/conf.d/
# 配置时区
default-time_zone = '+8:00'

#lower_case_table_names=0
character_set_server=utf8
init_connect='SET NAMES utf8'

default_password_lifetime=0
[client]
default-character-set=utf8
$ cat docker-compose.yml 
# Use root/example as user/password credentials
version: '3'

services:

  db:
    image: mysql
    volumes:
# 映射配置文件
      - ./my.cnf:/etc/mysql/my.cnf
# 映射数据
      - ./data:/var/lib/mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
# 配置root密码:这里是example
      MYSQL_ROOT_PASSWORD: example
    ports:
# 映射端口
      - 3306:3306

# 配置一个监控服务,可以通过8080端口访问
  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

MySQL Adminer.png
MySQL Adminer.png

然后使用上面介绍的docker-compose up -d 启动就OK了

安装nginx

nginx的安装就和MySQL大致一样了,这里我直接贴出代码

$ cat docker-compose.yml 
version: "3"
services:
  web:
    image: nginx
    volumes:
      - ./default.conf:/etc/nginx/conf.d/default.conf
      - ./html:/usr/share/nginx/html
    ports:
      - "80:80"
    environment:
      - NGINX_HOST=foobar.com
      - NGINX_PORT=80
$ cat default.conf 
server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
		# 如果用来部署Ant Design 项目需要开启此配置
        try_files $uri $uri/ /index.html;
    }
}

安装redis

首先创建一个目录来存放redis的配置文件和数据文件等,比如docker-redis,然后在下面创建对应的文件:

  1. 创建文件:redis.conf存放配置文件
  2. 创建文件夹:data 文件夹,存放数据
  3. 创建文件:docker-compose.yml 配置redis服务

redis.conf 可以自己从官网copy一个下来,然后按照需要修改下:

$ wget http://download.redis.io/releases/redis-5.0.8.tar.gz
$ tar -zxvf redis-5.0.8.tar.gz
$ cp redis-5.0.8/redis.conf .

主要修改两个配置:

  1. 允许远程访问:修改bind 127.0.0.1bind 0.0.0.0
  2. 允许无密码访问:修改protected-mode yesprotected-mode no
$ cat docker-compose.yml
# Use root/example as user/password credentials
version: '3'

services:

  redis:
    image: redis
    volumes:
      # 映射配置文件
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      # 映射数据
      - ./data:/data
    # 启动命令
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      # 映射端口
      - 6379:6379
  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论