how to use docker

wsl2 后可以配合docker desktop在本地环境快速搭建 redis/mongodb/mysql/nginx/php 等环境的部署。

docker

dockerhubformysql

docker search mysql

拉取 docker images

docker pull mysql:latest

查看本地镜像

docker images

docker-compose

docker-compose up -d

version: '3'
services: #表示这是一组服务 
  redis:
    image: redis
    container_name: redis
    restart: always #docker服务重启后nginx的docker容器也重启
    ports:
    - "6379:6379" #映射的端口,redis容器的6379端口映射到本地的6379端口,可以通过ip:6379访问容器
    networks:
      db_local: #应用docker网络的名称
        ipv4_address: 192.170.129.111 #分配的局域网ip
    volumes:
    # 挂载数据目录  
    - D:\WorkSpace\work-docker\docker-data\redis\data:/data
    # links:
    # - php # 连接php的docker容器 会在host文件生成 php 192.170.1.101(php 容器的局域网ip)
  mysql:
    image: mysql #应用的mysql的镜像名称
    container_name: mysql #应用的mysql的镜像名称
    restart: always #docker服务重启后nginx的docker容器也重启
    ports:
    - "3306:3306" #映射的端口,redis容器的6379端口映射到本地的6379端口,可以通过ip:6379访问容器
    environment:
      MYSQL_ROOT_PASSWORD: root_password # root用户的密码
      MYSQL_USER: user # 创建新用户
      MYSQL_PASSWORD: user_password # 新用户的密码
    volumes: 
    # - D:\WorkSpace\work-docker\docker-data\mysql-conf:/etc/mysql #本地mysql映射到docker
    - D:\WorkSpace\work-docker\docker-data\mysql\data:/var/lib/mysql #本地mysql映射到docker
    networks:
      db_local: #应用docker网络的名称
        ipv4_address: 192.170.129.112 #分配的局域网ip
  mongo:
    image: mongo
    container_name: mongo
    restart: always #docker服务重启后nginx的docker容器也重启
    ports:
    - "27017:27017" #映射的端口,redis容器的6379端口映射到本地的6379端口,可以通过ip:6379访问容器
    volumes:
    # 挂载数据目录  
    - D:\WorkSpace\work-docker\docker-data\mongodb\db:/data/db
    networks:
      db_local: #应用docker网络的名称
        ipv4_address: 192.170.129.113 #分配的局域网ip
networks:
  db_local:
    driver: bridge #网络类型
    ipam:
      config:
      - subnet: 192.170.129.0/17 #区域网ip

关于php容器内在不关联 mysql 情况下连接mysql

可以将本机局域网ip让php容器内连接

Docker容器后台运行,就必须有一个前台进程。主线程结束,容器会退出。

直接运行docker命令,路径为work_dir

docker exec -it php-80  php -version

评论列表