准备运行环境

这一步的目的: 由架构师构建项目运行需要的运行环境,使得所有开员人员的开发环境一致。

一般分以下六个步骤来完成运行环境的搭建过程,前五步由架构师来完成,第六步由开发人员完成,具体步骤如下:

  1. 拉取基础镜像

从镜像市场如Docker Hub拉取官方基础镜像;

php官方镜像: docker pull php -> 7.0/Dockerfile docker pull php:7.0.1-apache

java官方镜像: docker pull java -> openjdk-8-jdk/Dockerfile docker pull tomcat:8.0.30-jre7

mysql官方镜像: docker pull mysql -> 5.7/Dockerfile

Node.js官方镜像 -> 5.3/Dockerfile

  1. 重建基础镜像

编写Dockerfile,构建团队的基础镜像,这一步主要目的是加入团队自己的应用框架;如果没有自己的应用框可以忽略;

以下在中级课程中讲述

FROM 218.205.113.98:5000/node:5.1.0

RUN npm install -g cnpm --registry=https://r.cnpmjs.org

#RUN npm config set strict-ssl false
#RUN npm install -g cnpm --registry=http://r.cnpmjs.org
#RUN npm install microtime --registry=http://r.cnpmjs.org --disturl=http://dist.cnpmjs.org

RUN cnpm install [email protected] -g

docker build -t .
docker tag node:5.1.0:label 218.205.113.98:5000/node:5.1.0:label


3. 推送重建镜像

架构师推送重建后的基础镜像到私有仓库,方便团队成员拷贝;

以下在中级课程中讲述

docker push 218.205.113.98:5000/node:5.1.0:label

  1. 准备代码仓库

代码仓库方便源码管理和多人协作;

https://github.com/hujb2000/docker-training.git

填加协作者

  1. 编排开发环境

基准项目代码根目录下存放编排服务脚本或compose.yml文件;

脚本启动Mysql:

docker run --net=host --name mysql --restart=always -v /home/hjb/mysql_test/:/etc/mysql/conf.d -v /home/hjb/mysql_test/db/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD='rootpwd' -e MYSQL_DATABASE='icp' -e MYSQL_USER='icp' -e MYSQL_PASSWORD='icp' -p 3306:3306  -d mysql

Compose.yml编排服务:


6. 拉取基础镜像和基准代码

当架构师好准备好项目的运行环境后,开发人员共享这个环境。


docker pull mysql;
docker pull php;
docker pull java;

以下在中级课程中讲述

docker push 218.205.113.98:5000/node:5.1.0:label;

  • 测试环境是否OK?

  • 测试MySQL服务镜像

用Navicat for Windows工具

主机名: 192.168.99.100 端口: 3306 用户名: icp 密码: icp

测试连接: 提示连接成功。

docker exec -it mysql_container_id sh 进入容器

  1. 测试PHP镜像

c/Users -> c:\Users目录,貌似只能这个目录

<!DOCKTYPE html>

echo "My first PHP script!"; ?>

docker run -ti -v //c/Users/workspace/docker-training/php://usr/src/myapp -w /usr/src/myapp php php index.php

控制台上看到:

<!DOCKTYPE html>

My first PHP Script!

验证OK.

cd c/Users/workspace/docker-training/php

Dockerfile

FROM php:5.6-cli
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
CMD [ "php", "./your-script.php" ]

docker build -t my-php-app .

docker run -it --rm --name my-running-app my-php-app

  1. 测试JAVA镜像

docker tag 218.205.113.98:5000/java java

Dockerfile: ``` FROM java:7 COPY . /usr/src/myapp WORKDIR /usr/src/myapp RUN javac HelloWorld.java CMD ["java", "HelloWorld"]

docker build -t my-java-app .

docker run -it --rm --name my-running-app my-java-app

or

docker run --rm -v //c/Users/workspace/docker-training/java://usr/src/myapp -w //usr/src/myapp java:latest javac HelloWorld.java

docker run --rm -v //c/Users/workspace/docker-training/java://usr/src/myapp -w //usr/src/myapp java:latest java HelloWorld