J'Blog

docker使用记录

docker使用记录

创建一个httpd+php的环境镜像(centos系统)

安装并启动docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl start docker
// 可以用docker -v 查看docker是否安装成功

拉取centos镜像

docker pull centos
docker images(查看所有的镜像,此时本地会有一个centos的镜像)
// 启动一个容器(-it表示使用终端模式进入容器)
docker run -it -p 8000:80 镜像ID /bin/bash

安装httpd

yum install httpd
chkconfig httpd on      // 设置开机启动
service httpd start     // 启动apache服务

安装php

yum install php
yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc
此时httpd服务以及php在这个容器内已经安装好,可以在/var/www/html/目录下新建一个info.php文件,在文件中写入测试内容,例如
<?php
	phpinfo();
?>
进入浏览器访问本地服务器,例如http://localhost:8000/info.php查看是否显示phpinfo信息。(因为创建容器的时候做了一个端口映射,本地8000端口映射到容器里的80端口,httpd服务默认配置80端口)

保存镜像

上传到dockerHub上

dockerHub上创建一个账号

docker login    //输入用户名和密码
docker tag 容器ID httpd-php:v1    //给容器一个标签
docker ps       //可以查看所有的容器信息,此时可以看到有一个上面创建的容器名称变为httpd-php
docker push httpd-php
去dockerHub上看你的账号是否有一个镜像上传上去了

打包镜像

docker save -o centos(或者镜像ID) httpd-php
// 此时当前目录下就会生成一个httpd-php.tar包,就可以转发到目的主机上进行使用

使用镜像

以上传到dockerHub上的:
docker pull httpd-php(具体的去dockerHub上看,上面有可以复制拉取镜像的代码)
以打包镜像的:
docker load -i httpd-php.tar
// 此时本地就会出现一个镜像
docker run -d --privileged -p 8888:80 -v /data/docker:/var/www/html 镜像ID /usr/sbin/init
// 创建容器, 本地8888端口映射容器内的80端口,可以使用本地8888端口进行访问,-v表示本地/data/docker目录映射到容器内的/var/www/html目录,上面是在容器内的/var/www/html/目录下去新建一个文件进行测试,那此时就可以在本地的/data/docker/目录下创建php项目进行访问了。