一、预备内容
Docker搭建环境的好处:
操作简单,搭建迅速,环境隔离
常见的Docker操作命令及参数:
docker search # 从Docker Hub查找镜像
docker images # 查看本地镜像列表
docker pull # 从镜像仓库中拉取或者更新指定镜像
docker run # 创建一个新的容器并运行一个命令
docker rm # 删除一个容器
docker rmi # 删除一个镜像
docker inspect # 获取容器/镜像的元数据
docker ps # 查看启动的容器,加参数 -a 查看所有的容器
docker build # 使用 Dockerfile 创建镜像
常见的Dockerfile指令:
FROM # 格式为FROM image或FROM image:tag,并且Dockerfile中第一条指令必须是FROM指令,且在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令
RUN # 格式为RUN command或 RUN ["EXECUTABLE","PARAM1","PARAM2".....],前者在shell终端中运行命令,/bin/sh -c command,例如:/bin/sh -c "echo hello";后者使用exec执行,指定其他运行终端使用RUN["/bin/bash","-c","echo hello"]
CMD # 用于指定容器启动时执行的命令
MAINTAINER # 指定维护者信息
ENV # 用于指定环境变量,这些环境变量,后续可以被RUN指令使用
EXPOSE # 暴露端口,为容器外部链接使用
二、开始搭建
顺序:mysql --> phpfpm --> nginx
一定要先搭建 phpfpm,然后搭建 docker_nginx
搭建docker_mysql
先使用docker search mysql 列出仓库中存在的mysql镜像
使用docker pull 命令,将STARTS 最多的镜像下载到本地(下载时间有点长...)
docker pull mysql
下载后,使用docker images查看是否镜像已经下载到本地
docker images
可以看到以下内容
使用docker run 命令启动一个docker_mysql 容器
docker run -di --name mydockermysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
docker run ##启动容器的命令
-i ##交互式操作
-d ##守护进程
--name ##指定容器名为 mydockermysql
-p ##将容器的3306端口映射到主机的3308端口
-e ##指定环境变量,容器中可以使用该环境变量,设置root密码
最后一个mysql是指定使用某个镜像
使用docker ps 命令查看容器是否已经启动
如果能看到刚刚搭建的mysql,则说明容器创建成功,如果没有看到,可以使用docker log mydockermysql命令查看有哪些错误,并对命令加以修改,再重新启动,不过需要先把刚刚的容器删掉,命令为docker rm mydockermysql
尝试使用navicat工具链接数据库发现failed,排查一下
进入mysql容器
docker exec -it mydoc