dockerfile创建镜像及容器

第一步:

从王总git上:http://git.oursdata.com/wangyue/dockerfiles.git

进入下图的文件夹中

然后执行以下的说明执行步骤

第二步:

开发环境dockerfile

BUILD

docker build -t silentmoon/centos7:devel -f centos7_ssh_devel .

咖啡时间,请保持网络连接,如果网速慢的话,就别继续往下看了。

RUN

docker run -d -P --name devel_centos7_ssh -h develop silentmoon/centos7:devel

没有报错就说明镜像启动正常 docker ps 看一下是否存在

ACCESS

  • User/Password: work/[email protected]#bnm root/4man49a52e27
  • Method of ssh

ssh [email protected] -p32768一般情况是32768,docker ps查看一下

  • Method of docker

docker exec -it 9e34e8ff45ea bash container id 需要自己查看

  • Method of Shell

ln -s `pwd`/devel ~/bin/devel chmod 755 ~/bin/devel devel

Work Directory Structure

cd ~ mkdir app mkdir env mkdir src mkdir tmp mkdir tar mkdir bin

Nginx Install

GET

cd ~/src wget http://www.oursdata.com/misc/nginx-1.10.2.tar.gz tar -zxvf nginx-1.10.2

Configure & Make

cd ~/src/nginx-1.10.2 ./configure --prefix=/home/work/env/nginx --sbin-path=/home/work/env/nginx/sbin/nginx --conf-path=/home/work/env/nginx/conf/nginx.conf --error-log-path=/home/work/env/nginx/error-log --pid-path=/home/work/env/nginx/run/nginx.pid --lock-path=/home/work/env/nginx/lock/nginx.lock --user=work --group=work make && make install

补充:默认下nginx是没有启动的,需要进入sbin文件下,./nginx 启动    ./nginx -s reload 重新加载nginx

PHP Install

GET

cd ~/src wget http://www.oursdata.com/misc/php-5.6.29.tar.gz tar -zxvf php-5.6.29.tar.gz

Configure & Make

cd ~/src/php-5.6.29 ./configure --prefix=/home/work/env/php --with-config-file-path=/home/work/env/php/etc --with-mysqli --with-pdo-mysql --with-gd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/ --with-vpx-dir=/usr/local/libvpx/ --with-zlib-dir=/usr/local/zlib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --enable-ctype make && make install

补充:etc文件下是没有php.ini文件,需要到80服务器上复制一个配置文件过来且可以同时把80服务器上的ext下扩展文件也拷贝过来,然后去sbin文件执行

./php-fpm -c ../etc/php.ini

设置nginx配置文件

再nginx的结尾处nginx.conf

加上 include hosts/*.conf;

然后再conf文件夹下新建一个hosts文件夹,在hosts文件新建

配置文件如:tianjian.conf

server {

listen       80;

index index.php;

root /home/work/app/tj-bdaas/src/tj-bdaas/src/web/web;

server_name  tianjian.loc.cn;

location / {

index index.php;

if (!-e $request_filename){

rewrite ^/(.*) /index.php last;                 }

}

location ~ \.php$

{

fastcgi_pass  127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

fastcgi_param PATH_INFO $fastcgi_script_name;

fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

}

配置文件完成后,进入sbin文件下   执行  ./nginx -s reload

最后去 vim /etc/hosts 文件下配置自己的虚拟域名,如下图

第三步

此时容器里面的nginx和php 已经安装完成,现在可以把这个容易做成一个镜像

docker commit -m "change somth" -a "somebody info" container_id(docker ps -a获取id) 新镜像名字        //docker使用现有容器生成新的镜像

这样就会生成一个新的镜像

通过docker images

就会看到自己制作的镜像

第四步 把自己镜像再放到容器里面

docker制作镜像

docker run -p 127.0.0.1:80:80 -p 127.0.0.1:32766:22 -d -v /usr/local/var/www/:/home/work/app tang/centos_devel:latest

docker run -p 127.0.0.1:80:80  -d -P --name devel_centos7_ssh -h develop  -v /Users/zhangyougang/app:/home/work/app silentmoon/centos7:devel

这样就大功告成了!

如果数据库为mongodb库,需要安装下mongo  数据库

docker pull mongo      //由于网络原因,可能会报错,多pull几次就可以

docker pull mongo -express     //由于网络原因,可能会报错,多pull几次就可以

创建mongoldb容器

docker run —name mongo -p 27017:27017 -d mongo

创建mongo-expres容器

docker run —link mongo:mongo —name mongo-express -p 8081:8081 -d mongo-express

sudo docker inspect mongo  查看mongo的ip地址

进入容器

docker exec -it mongo名字 bin/bash

原文地址:https://www.cnblogs.com/jiangtian/p/8366598.html

时间: 2024-10-12 05:00:46

dockerfile创建镜像及容器的相关文章

docker常用命令、镜像命令、容器命令、数据卷,使用dockerFile创建镜像,dockefile的语法规则。

一.docker常用命令? 1. 常用帮助命令 1.1 docker的信息以及版本号 /* docker info 查看docker的信息 images2 docker本身就是一个镜像. docker version 查看docker的版本号 */ 1.2 docker的启动,停止,重启,查看状态. // service docker start/stop/restart/status 二.镜像命令? 1. 列举出所有的镜像(本地镜像) /* docker images 所拥有的参数: dock

使用 Dockerfile 创建镜像

简介 Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile快速创建自定义的镜像. 本文首先将介绍Dockerfile典型的基本结构及其支持的众多指令,并具体讲解通过这些指令来编写定制镜像的Dockerfile. 最后,会介绍使用Dockerfile创建镜像的过程. 基本结构 Dockerfile由一行行命令语句组成,并且支持以#开头的注释行. 一般而言,Dockerfile分为四部分:基础镜像信息.维护者信息.镜像操作指令和容器启动时执行指令.例如: # 第一行必须指定

docker通过模板创建镜像以及容器、仓库和数据管理

笔记内容:docker通过模板创建镜像以及容器.仓库和数据管理笔记日期:2018-02-05 25.5 通过模板创建镜像 25.6 容器管理 25.7 仓库管理 25.8 数据管理 25.5 通过模板创建镜像 1.既然是通过模板创建镜像,那么首先肯定得先下载一个模板,地址如下: http://openvz.org/Download/templates/precreated 打开以上网址选择一个模板进行下载,我这里下载的是centos-6-x86-minimal.tar.gz (signature

使用Dockerfile创建nginx服务容器镜像

1.下载nginx配置文件 wget http://www.apelearn.com/study_v2/.nginx_conf 2. vim Dockerfile #本地有centos的镜像,可以直接指定镜像名称:如果需要从docker官网下载其他版本镜像,请自行修改版本号 FROM centos:6.8 MAINTAINER wyman [email protected] #根据实际需要选择安装 RUN yum install -y pcre-devel wget net-tools gcc

7 docker-使用dockerfile创建镜像

在前面的实验中我们多次用到的 Dockerfile,在本实验里我们将通过完成一个实例来学习Dockerfile的编写. 本节中,我们需要依次完成下面几项任务: Dockerfile 基本框架    Dockerfile 编写常用命令    从 Dockerfile 构建镜像 本次实验的需求是完成一个Dockerfile,通过该Dockerfile创建一个Web应用,该web应用为apache托管的一个静态页面网站,换句话说,我们写一个Dockerfile,用来创建一个实验楼公司的网站应用,就是h

dockerfile创建镜像(二)

ENTRYPOINT 两种格式: ENTRYPOINT [“executable”, “param1”, “param2”] ENTRYPOINT command param1 param2 (shell中执行). 在运行时,可以被--entrypoint参数覆盖,如docker run --entrypoint 每个Dockerfile中只能有一个 ENTRYPOINT ,当指定多个时,只有最后一个起效. VOLUME 格式为 VOLUME [“/data”] . 创建一个可以从本地主机或其他

Docker基础-使用Dockerfile创建镜像

1.基本结构 Dockerfile由一行行命令语句组成,并支持以#开头的注释行.例如: # This dockerfile uses the ubuntu image # VERSION 2 - EDITION 1 # Author: docker_user # Command format: Instruction [arguments / command ] .. # Base image to use, this nust be set as the first line FROM ubu

Dockerfile创建镜像模板详解

Dockerfile是一个文本格式的配置文件,用户可以使用Dockfile快速创建自定义的镜像.Dockerfile是由一行行的命令语句组成,并且支持以#开头的注释行.vi Dockerfile#一般而言,Dockerfile分为四部分:基础镜像信息.维护者信息.镜像操作指令和容器启动是执行的指令.模板如下: #This dockerfile uses the ubuntu image#指定基于的基础镜像,可以使用多个FROM指令,每个镜像一次#FROM <image>或FROM <im

Docker-使用Dockerfile创建镜像

Dockerfile是一个文本格式的配置文件,用户可以使用Docker来快速创建自定义的镜像 基本结构 Dockerfile由一行行命令语句组成,并且支持以#开头的注释行 一般而言,Dockerfile分为四部分:基础镜像信息.维护者信息.镜像操作指令和启动时执行指令 FROM ubuntu MAINTAINER docker_user [email protected] RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main un