内容简介:看这篇文章,必须知道基础的docker, 本文只提供思路和部分代码, 不负责教所有的命令必须谨慎操作!三思而后行自动加载sql语句,实现初始化数据库
看这篇文章,必须知道基础的docker, 本文只提供思路和部分代码, 不负责教
所有的命令必须谨慎操作!三思而后行
命令
- 停止所有运行的容器
docker stop $(docker ps -a -q)
- 删除所有的容器
docker rm $(docker ps -a -q)
- 使用docker-compose启动容器
docker-compose up -d
- 使用docker-compose关闭容器
docker-compose down
- 查看Log
docker logs ${容器id}
部署mysql
docker-compose
services: mysql: network_mode: "host" environment: MYSQL_ROOT_PASSWORD: "yourpassword" MYSQL_USER: 'test' MYSQL_PASS: 'yourpassword' image: "docker.io/mysql:latest" restart: always // 连不上就一直重试 // depends_on: 选择依赖于某个服务,依赖的服务会先加载 // - 'sss' volumes: - "./db:/var/lib/mysql" - "./conf/my.cnf:/etc/my.cnf" - "./init:/docker-entrypoint-initdb.d/" ports: - "3306:33060"
自动加载 sql 语句,实现初始化数据库
mysql的官方镜像中,会在加载时执行docker-entrypoint-initdb.d下面文件夹下的sql文件 利用这个实现初始化
如果 mysql 数据文件夹中有数据,则不会加载sql文件
EGG项目配合docker: 直接被中断
因为 egg-scripts
自己有一套守护进程,去掉 daemon
参数
"start": "egg-scripts start --title=egg-server-broken-chain",
部署NodeJs项目
- 新建Dockerfile文件
FROM node:10.13-alpine ENV NODE_ENV production WORKDIR /usr/src/app COPY ["package.json", "package-lock.json*", "npm-shrinkwrap.json*", "./"] RUN npm install -g cnpm RUN cnpm install --production --silent COPY . . EXPOSE 7001 CMD [ "npm", "start"]
- 在docker-compose.yml中添加信息,用docker-compose管理多个镜像相当方便
最终的docker-compose.yml文件
version: '2' services: broken-chain: image: broken-chain build: . environment: NODE_ENV: production ports: - 7001:7001 depends_on: - "mysql" restart: always mysql: environment: MYSQL_ROOT_PASSWORD: "123" image: "docker.io/mysql:5.6" volumes: - "./mysql/init:/docker-entrypoint-initdb.d/" ports: - "3306:3306"
发布镜像
-
登录
Dockerhub
docker login
- 给镜像打上标签
docker tag ${镜像id} ${用户名}/${镜像名}:${tag标签}
- push推到dockerhub
docker push ${用户名}/${镜像名}:${tag标签}
最后
最终,你要把你做的项目给别人用,开箱即用的那种。你需要
- 新建目录结构
- init - xxx.sql //初始化的sql语句 - docker-compose.yml
- docker-compose.yml如下
version: '2' services: broken-chain: image: ${你的用户名}/${你的镜像} // 这回直接拉取你在dockerhub上的镜像 // build: . 去掉构建步骤 environment: NODE_ENV: production ports: - 7001:7001 depends_on: - "mysql" restart: always mysql: environment: MYSQL_ROOT_PASSWORD: "123" image: "docker.io/mysql:5.6" volumes: - "./mysql/init:/docker-entrypoint-initdb.d/" ports: - "3306:3306"
- 压缩zip给别人
使用命令一键运行( 数据库 + 项目 )
docker-compose up -d
- 舒服了
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 【前端打包部署】谈一谈我在SPA项目打包=>部署的处理
- Maven多模块项目打包前的一些注意事项(打包失败)
- tar打包如何不打包某一个文件夹(排除某些文件夹)
- iOS新手用swift写一个macos打包工具 一键打包到指定位置
- Android应用签名打包
- 多渠道打包
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Hive编程指南
卡普廖洛 (Edward Capriolo)、万普勒 (Dean Wampler)、卢森格林 (Jason Rutherglen) / 曹坤 / 人民邮电出版社 / 2013-12-1 / 69
市场中第一本Hive图书。 Hive在Hadoop系统中的应用趋势比较可观。一起来看看 《Hive编程指南》 这本书的介绍吧!