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项目进行访问了。