Docker创建centos的LNMP镜像

前段时间重装了系统,今天刚好有时间,就用docker安装一个lnmp开发环境,下面是我的安装笔记。

1. 安装docker

这个就不说了,不会的可以看下我之前的文章《Docker介绍及安装》。

1)启动docker

# service docker start

2. 下载docker镜像

官网docker镜像网站:https://www.docker.com/,可以在这里查看官网或者第三方的docker镜像。当然如果没有VPN,网络比较慢的情况下,可以考虑使用:https://docker.cn/,这是一个国内的镜像网站。

1)下载docker镜像

# docker pull docker.cn/docker/centos:centos6

说明:docker pull命令是从远程下载镜像的命令,类似git pull。docker.cn/docker/centos是国内镜像网站centos镜像的地址,如果要下载官方centos镜像,直接使用centos即可。:centos6是指这个镜像的tag,我下载的是centos6,如果要下载最新版本,可以使用:latest或者:centos7。

2)查看镜像

# docker images

OK,可以看到centos镜像已经下载下来了。

blob.png

3.  运行容器

根据刚刚下载的centos镜像运行一个容器进入shell。

1)运行容器,进入该容器的shell界面

# docker run -i -t docker.cn/docker/centos:centos6 /bin/bash

现在我们已经进入容器的shell界面了,这个就是我们下载下来的centos6系统的shell,如图:

blob.png

下面就是在容器中安装lnmp环境。

这里就不详细说了,如果不会安装lnmp的,可以看这里:《centos6 下安装nginx1.7.9+php5.6.4+mysql5.6.2》。

安装完成lnmp之后,输入exit退出镜像shell界面。

blob.png

4. 制作生成新镜像

先查看下刚刚运行的容器(安装lnmp的)的ID,在使用该ID生成新的镜像。

1) 查看刚刚运行的容器ID

# docker ps -lq

blob.png

可以看到ID为:fe77b1628688,下面我们提交下这个容器生成新镜像。

2)提交生成新镜像

# docker commit fe77b vckai/dev:v1

fe77b1628688这里一般只需要使用前几位数就行了,只要不重复能识别到,可以不输入全部的,vckai/dev:v1 是我生成的新镜像名,如果输入已有的镜像名,则会覆盖原有的镜像。

blob.png

这里可以看到已经生成好一个新的镜像了,ID为:8717b405408e3df2a12b503e327226d35d6ce118ebc66178ca2bfe440bcb8f04。

3)查看所有的镜像

# docker images

blob.png

可以看到,刚刚我们生成的镜像就在这里了。

5. 启动镜像

# docker run -d -p 80:80 -v /web:/www vckai/dev:v1 /sbin/init

-d是以Daemon模式运行。

-p 80:80 是将本地80端口映射到容器的80端口,现在可以在本地使用http://localhost访问。

-v /web:/www 是将本地的/web目录挂载到容器的/www(容器配置的web目录)目录下。

vckai/dev:v1 是要运行的镜像名称。

/sbin/init 是容器运行后的系统初始化操作,主要用于启动nginx,php-fpm,mysql服务。

1)查看docker运行中的镜像

# docker ps

blob.png

2)停止/重启/kill/启动容器(可选)

# docker stop/restart/kill/start <ID/Name>

更多容器操作命令可以看这篇文章:Docker学习笔记。

这个时候你已经可以使用http://localhost 访问你的网站了,咦,奇怪,居然访问不了!突然想起没在容器中配置开机启动,以至/sbin/init初始化的时候没把nginx+php+mysql启动起来。

现在只能先把容器停止,然后进入vckai/dev:v1这个容器,在/etc/rc.local文件中添加nginx、php和mysql的启动运行,然后在docker commit提交覆盖vckai/dev:v1即可。

另外,如果已经在运行中的容器,怎么进入查看呢?两种方式,一个ssh,另外一个使用nsenter。但是不建议使用ssh进入:为什么不需要在 Docker 容器中运行 sshd。

1)安装nsenter

# docker run --rm -v /usr/local/bin:/target jpetazzo/nsenter

2)进入运行中的容器shell

# docker-enter 65615a

65615a 是我们刚刚使用docker ps查看到的容器ID。

3)启动容器的nginx+php

# /data/apps/nginx/sbin/nginx
# /data/apps/php/sbin/php-fpm

OK,现在打开网站已经是正常运行了!

参考资料:

Docker教程中文版本:https://code.csdn.net/u010702509/docker

Nsenter github:https://github.com/jpetazzo/nsenter

docker命令学习笔记:http://blog.csdn.net/we_shell/article/details/38368137?utm_source=tuicool

时间: 2024-10-12 03:42:55

Docker创建centos的LNMP镜像的相关文章

转:Docker创建centos的LNMP镜像

转自:http://www.vckai.com/p/29  1. 安装docker 这个就不说了,不会的可以看下我之前的文章<Docker介绍及安装>. 1)启动docker # service docker start 2. 下载docker镜像 官网docker镜像网站:https://www.docker.com/,可以在这里查看官网或者第三方的docker镜像.当然如果没有VPN,网络比较慢的情况下,可以考虑使用:https://docker.cn/,这是一个国内的镜像网站. 1)下载

docker创建centos镜像无法使用systemctl

docker获取centos镜像,里面执行安装lnmp之后 发现使用systemctl无法使用 [[email protected] /]# systemctl restart nginx Failed to get D-Bus connection: Operation not permitted 解决办法 1: docker stop 92926bd84d702: docker export 92926bd84d70 > centos_lnmp_laster.tar3:cat centos_

docker创建centos容器之后ssh登录失败

创建运行centos容器之后,立刻使用ssh客户端工具登录,输入密码root,或者直接回车,发现登录被拒绝: 解决办法: 在容器中使用passwd命令设置好密码,再用客户端工具登录. 原文地址:https://www.cnblogs.com/144823836yj/p/12502806.html

Docker系列(一)---镜像

本系列实验环境均为:CentOS6.6 使用epel库安装docker [[email protected]~]# rpm -ivh http://mirrors.sohu.com/fedora-epel/6/i386/epel-release-6-8.noarch.rpm [[email protected]~]# yum install docker-io -y 启动docker并设为开机自启 [[email protected]~]# /etc/init.d/dockerstart [[e

docker on centos

docker最好在centos7上安装,centos6.5上似乎麻烦不少 这里直接在centos7上安装,要提前装一下epel的repo yum install docker 安装就行 chkconfig docker on service docker start 把docker服务设置为每次开机启动,然后启动docker服务 然后就能docker pull centos抓一个镜像下来 和lxc略有不一样的是,lxc 和普通虚拟机一样有create命令,能够创建一个容器,还要自己手动配一下网络

Docker下CentOS中文乱码问题处理

使用Docker pull centos,完了之后镜像无法显示中文问题 FROM centos MAINTAINER fengwan.blog.51cto.com RUN rm -rf /etc/localtime && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #修改时区 RUN yum -y install kde-l10n-Chinese && yum -y reinstall glibc-commo

docker创建支持ssh服务的centos镜像

以centos为基础,目的使用ssh服务远程连接docker容器 环境:宿主机centos7,直接搜索docker的centos镜像,下载最新版本 1.先按照docker:yum install -y epel-release yum install -y docker 2.启动docker: systemctl start docker.service 3.使用ps查看docker是否启动 ps aux |grep docker 4.下载centos的docker镜像 docker pull

Docker创建支持MySQL服务的镜像

#本地已有镜像 FROM docker.io/centos #作者信息 MAINTAINER liangyj "[email protected]" #安装依赖工具 RUN yum install -y gcc gcc-c++ make autoconf ncurses-devel #下载cmkae ADD   /usr/local/src #编译安装cmake WORKDIR /usr/local/src RUN tar xzvf cmake-3.0.2.tar.gz WORKDIR

docker创建自己的镜像并配置nginx

前言 最近在研究docker,记录一下如何创建一个属于自己的镜像 本次使用linux版本为centos7.4(centos6也可以使用docker,只不过有部分功能只有7才有) 本次创建的镜像为centos系统中搭建nginx 一.统一环境 系统版本 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) 内核版本 [[email protected] ~]# uname -r 3.1