准备运行环境
这一步的目的: 由架构师构建项目运行需要的运行环境,使得所有开员人员的开发环境一致。
一般分以下六个步骤来完成运行环境的搭建过程,前五步由架构师来完成,第六步由开发人员完成,具体步骤如下:
- 拉取基础镜像
从镜像市场如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
- 重建基础镜像
编写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
- 准备代码仓库
代码仓库方便源码管理和多人协作;
https://github.com/hujb2000/docker-training.git
填加协作者
- 编排开发环境
基准项目代码根目录下存放编排服务脚本或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 进入容器
- 测试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
- 测试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