摘要:你需要新建目录结构初始化的语句如下你的用户名你的镜像这回直接拉取你在上的镜像去掉构建步骤压缩给别人使用命令一键运行数据库项目舒服了
看这篇文章,必须知道基础的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
舒服了
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/104179.html
摘要:你需要新建目录结构初始化的语句如下你的用户名你的镜像这回直接拉取你在上的镜像去掉构建步骤压缩给别人使用命令一键运行数据库项目舒服了 看这篇文章,必须知道基础的docker, 本文只提供思路和部分代码, 不负责教 所有的命令必须谨慎操作!三思而后行 命令 停止所有运行的容器 docker stop $(docker ps -a -q) 删除所有的容器 docker rm $(docker...
摘要:采用虚拟化的技术来虚拟化出应用程序的运行环境。安装成功后,可以通过查看版本号尽量使用最新的稳定版本。是镜像名,是镜像的版本号,到此你已经成功构建了一个新的镜像,你可以通过,查看你的镜像。部署时将此文件到生产环境服务器上。 Docker docker是一个开源的应用容器引擎,可以为我们提供安全、可移植、可重复的自动化部署的方式。docker采用虚拟化的技术来虚拟化出应用程序的运行环境。此...
摘要:采用虚拟化的技术来虚拟化出应用程序的运行环境。安装成功后,可以通过查看版本号尽量使用最新的稳定版本。是镜像名,是镜像的版本号,到此你已经成功构建了一个新的镜像,你可以通过,查看你的镜像。部署时将此文件到生产环境服务器上。 Docker docker是一个开源的应用容器引擎,可以为我们提供安全、可移植、可重复的自动化部署的方式。docker采用虚拟化的技术来虚拟化出应用程序的运行环境。此...
摘要:为确保系统里面没有自带的软件的残留,我们要清除一下旧版本的,虽然新系统一般都不会有就是了。更新软件包缓存。 showImg(https://segmentfault.com/img/remote/1460000015914895?w=1240&h=819); 小剧场 测试:裤裆你这页面刷新就白屏啊,怎么了啊,而且你看这 network,怎么这些 js 这么大啊,很耗流量而且加载速度还很...
摘要:最近在学习,并用重新部署了项目,使用后确实大幅度地降低了部署难度。如果,内存,硬盘不够,只能加物理设备,但这个是有上限的。虚拟化时代为了解决物理设备的诸多问题,出现了虚拟机。全手动部署编写文件。一键启动,确保已安装。 最近在学习 Docker,并用 Docker 重新部署了cdfang-spider项目,使用 docker 后确实大幅度地降低了部署难度。如果你也想用 Docker 来部...
阅读 1551·2019-08-30 13:18
阅读 1539·2019-08-29 12:19
阅读 2064·2019-08-26 13:57
阅读 4095·2019-08-26 13:22
阅读 1149·2019-08-26 10:35
阅读 2961·2019-08-23 18:09
阅读 2463·2019-08-23 17:19
阅读 650·2019-08-23 17:18