宿主机环境:Windows10
容器镜像环境:CentOS Linux 7 (Core)!
使用docker小记
参考文档:
1、Win10 docker 创建lnmp镜像
https://blog.csdn.net/sure0824/article/details/82753172
Windows10环境写的docker安装包下载地址:
打开https://www.docker.com/products/docker-desktop
页面,点击Download Desktop for Mac and Windows
直接下载,或许有点慢,
可以找个代理工具进行下载,如:蓝灯
或者在这里下载安装包:
https://download.docker.com/win/stable/Docker for Windows Installer.exe
因为安装docker,需要将Windows10系统下的磁盘进行虚拟化,安装和运行期间遇到的问题,如:
Hyper-V为灰色按钮,勾选不了(BIOS中未启用虚拟化支持系列~~例如:因此无法安装Hyper-V)
对应解决方案可以在百度或者谷歌里进行查询解决,期间涉及到BIOS设置以及保存操作:
需要我们根据使用的电脑硬件配置来设置和保存。
我使用的电脑是华硕,解决方案如下链接地址里有解决方法:
https://www.cnblogs.com/dunitian/p/5539034.html
2、docker创建lnmp镜像
https://blog.csdn.net/zhang197093/article/details/78709248
3、docker logs-查看docker容器日志
https://www.jianshu.com/p/1eb1d1d3f25e
重点的步骤:
一、制作镜像文件,包括(Docker 拉取镜像创建镜像、修改镜像内容、提交镜像)
1、拉取镜像文件,如(docker pull 镜像name)
docker pull centos
2、使用下载的镜像启动容器
修改tag名称,如(docker tag 镜像id IMAGE)
docker tag 0b2616b0e5a8 centos:lnmp
启动容器
docker run -t -i centos:lnmp /bin/bash
3、修改镜像内容
(1)、比如使用yum源安装:yum install nginx php php-fpm mysql
等
(2)、在镜像里设置centos7 开机自动执行shell脚本,脚本内容根据自己的需求来编写。
(3)、centos7 开机自动执行shell脚本,如:
自己新建一个脚本,如:
vi /bin/centnet-service.sh
经过后面的几个步骤后,这个脚本在开机的时候会执行,在这个脚本里面可以写你开机的时候想执行的命令,如启动nginx,php-fpm等服务
在脚本中输入启动服务的命令,如(开机启动nginx):3
#! /bin/bash
systemctl start nginx.service
systemctl start php-fpm.service
systemctl start mariadb.service
执行如下命令,将该脚本标记为可执行文件(添加可执行的权限)
chmod +x /bin/centnet-service.sh
执行如下命令将/etc/rc.d/rc.local文标记为可执行文件
在centos7中,/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行在自己的脚本是不能起动一些服务的,执行下面的命令可以文件标记为可执行的文件
chmod +x /etc/rc.d/rc.local
打开/etc/rc.d/rc.local文件,在最后面添加如下脚本
/bin/centnet-service.sh
这样,centnet-service.sh这个脚本在开机的时候就会被执行了,以后再这里面写启动服务的命令就可以了
(5)清理不再需要的数据以缩减镜像的尺寸,然后docker commit生成新镜像;
清理yum源安装时产生的文件和数据
yum clean all
(4)、最后退出容器;
exit
4、提交镜像,如(docker commit 容器id centos:lnmpv2)
docker commit 0b2616b0e5a8 centos:lnmpv2
5、删除docker中的镜像,如(docker rmi 镜像id)
docker rmi 0b2616b0e5a8
二、使用制作好的镜像文件,启动容器
查看当前正在运行的容器
docker ps
查看容器状态(对于已退出的容器)
docker ps -a
1、使用镜像启动容器
docker run -itd --privileged=true -v /e/wwwroot:/www -p 8888:80 centos:lnmpv2 /usr/sbin/init
-i: 以交互模式运行容器,通常与 -t 同时使用
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d 让容器在后台运行
-v 添加目录映射(宿主机Windows10下的E盘目录wwwroot:镜像里/www目录)
-p 添加宿主机到容器的端口映射(宿主机端口:容器端口)
-e 设置环境变量,这里是设置mysql的root用户的密码
–name 容器的名字`
2、进入启动的容器中进行操作
docker exec -it a3194c8a8e4a /bin/bash
(进入容器中进行操作,如开启nginx,php-fpm,mysql)
systemctl start nginx.service
systemctl start php-fpm.service
systemctl start mariadb.service
三、常用docker命令
1、关闭容器,如(docker stop 容器id)
docker stop a3194c8a8e4a
2、开启容器,如(docker start 容器id)
docker start a3194c8a8e4a
3、查看最近30分钟的日志,如:( $ docker logs --since 30m CONTAINER_ID )
docker logs --since 30m 8abad0cf305d
4、删除容器,如(docker rm 容器id)
docker rm 8abad0cf305d
四、验证环境是否配置成功
打开Windows10任意浏览器输入:
宿主机Windows10下的E盘目录wwwroot创建index.php或者*.php文件进行测试
http://127.0.0.1:8888/
五、下一次使用docker容器
1、找到停止运行的容器
docker ps -a
2、启动容器
docker start a3194c8a8e4a
六、开始正常编码工作
无休止的Codeing................................