环境平台:win10 家庭版
准备工作
- docker安装:http://www.runoob.com/docker/windows-docker-install.html
- 创建自定义docker镜像:https://blog.csdn.net/hylexus/article/details/52854470
- 镜像加速和修改docker虚拟机地址:http://www.cnblogs.com/studyzy/p/6113221.html
因为只要搭建一个服务器,并且本人对 linux 也只是入门级的功力。所以创建镜像的方式用的是 commit
命令创建。
拉取基础镜像
使用命令 docker pull centos:6
注意:docket 基础镜像用的是contos6,centos7镜像有大坑,好多命令都用不了,要自行安装,很麻烦,特别是解决使用service命令,更麻烦。
创建容器并进入docker run -it --name myImage centos:6 /bin/bash
说明:-it
是使用终端与容器交互;--name
容器名; /bin/bash
容器的启动参数,要用这个参数才能进入容器的终端。
容器启动成功后就可以进入容器的终端了:
[root@2ae203145ac1 /]#
2ae203145ac1
是容器的id。
安装 mysql 数据库
安装完之后将 mysql 的启动服务添加到 /etc/rc.local 后面会用到容器自动启动 mysql 服务器。
使用命令:vi /etc/rc.local
在最后添加下面内容并保存
/etc/init.d/mysqld start
/bin/bash
注意这里还有一行/bin/bash
是为从新镜像创建容器时,能再进入容器的终端才加的。
保存新镜像
配置好容器之后,使用命令exit
退出容器并进入docker终端。
使用docker命令查看刚刚创建的容器:docker ps -a
。
将容器保存为新的镜像:docker commit -m="my docker image" --author="lnk" myImage lnk/mysql
使用新建的自定义镜象创建容器并运行
创建命令:docker run -itd -p 3306:3306 --name myMysql lnk/mysql /etc/rc.local
说明:-itd
这里多了一个d
,这个d
是指容器后台运行,在容器终端内使用exit
命令退出容器之后也不会停止容器运行,否则退出容器同时也会停止运行容器;-p 3306:3306
是映射本地端口到容器的端口;/etc/rc.local
是容器的启动参数。
进入容器终端:docker exec -it myMysql /bin/bash
修改容器之后可以再次用docker commit
更新镜像。
要点
进入容器:docker exec -it CONTAINER_ID /bin/bash
运行自定义镜像:docker run -itd my_image
要用参数 -itd
自启动:将应用的启动脚本添加到 /etc/rc.local
里,然后添加容器启动参数:docker run -itd my_image /etc/rc.local