内容简介:看这篇文章,必须知道基础的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应用签名打包
- 多渠道打包
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Chinese Authoritarianism in the Information Age
Routledge / 2018-2-13 / GBP 115.00
This book examines information and public opinion control by the authoritarian state in response to popular access to information and upgraded political communication channels among the citizens in co......一起来看看 《Chinese Authoritarianism in the Information Age》 这本书的介绍吧!