一步步跟我做,搭建属于自己的 docker 开发环境 作者:风来了.fox nginx 1.8.0 php 5.6.x
安装apparmor软件即可
sudo apt-get install apparmor下面需要创建用户和所属用户组,根据1.4 设置
Warning: The docker group is equivalent to the root user; For details on how this impacts security in your system, see Docker Daemon Attack Surface for details.给 docker 设置用户组和用户
sudo useradd -g docker docker sudo usermod -aG docker dockercentos 6.x ,ubuntu 14.x
sudo service docker startcentos 7.x ,ubuntu 15.x
sudo systemctl start docker配置文件增加参数
sudo vi /etc/default/docker在配置文件中添加或修改
DOCKER="/usr/bin/docker"增加完成后,重启docker
sudo systemctl restart docker注意: 如果拉取时间过长,docker hub 会自动切断链接,它会报超时错误! 这个时候再重新执行拉取命令即可,他会接着上次拉取断的位置重新拉取的
拉取时间根据每人的网速有关 项目都是根据 mysql 5.6 版本的,所以这里选择5.6版本 mysql:5.6 表示 镜像名称:版本号
redis 后面没有版本号时,默认拉取最新的一版 即 redis:latest
elasticsearch 后面没有版本号时,默认拉取最新的一版 即 elasticsearch:latest
lanmps 后面没有版本号时,默认拉取最新的一版 即 lanmps:latest nginx 版本 1.8.0 php 版本 5.6.x
有同学可能会使用这个缓存,需要的拿去 我们目前项目没有使用它
#来自 https://hub.docker.com/_/memcached/ sudo docker pull memcached重新执行拉取命令
如下图:红色框内都是none 的表示拉取不成功,要重新执行拉取命令
–name 容器名称
mysql 为自定义名称
-p:暴露端口,映射端口(可以映射多个端口) 外部端口:容器内部端口
-p 3306:3306 映射端口
-e:设置任意环境变量(容器内)
MYSQL_ROOT_PASSWORD=root 这里指 设置数据库密码为root
mysql:5.6 镜像名称:版本
redis 为自定义名称 -p 6379:6379 映射端口, 即 外部端口:容器内端口 redis:latest 镜像名称:版本
es 为自定义名称 -p 9200:9200 映射端口(可以映射多个端口), 即 外部端口:容器内端口 elasticsearch:latest 镜像名称:版本
–name 容器名称
–name lanmps 名为lanmps的容器
-p:暴露端口,映射端口(可以映射多个端口) 外部端口:容器内部端口
-p 80:80 外部80端口:容器内部80端口
-d:后台模式运行,如果没有则以前台运行(当前进程关闭后,当前容器自动关闭)
foxiswho/nginx-php 镜像名称:版本
–link:容器内部通信 容器名称:内部别名(内部使用)
–link mysql:db 使用时,直接使用db 就可以访问到数据库mysql容器 php 访问本地mysql 使用的是localhost,容器内部即可使用 db
-v:卷,外部目录虚拟到容器内目录 外部目录:容器内目录
-v /home/lanmps/www:/www/wwwroot /home/lanmps/www 外部目录,我的项目目录 /www/wwwroot 容器内部目录,这个是不能改变的
注意 本地 目录设置权限和用户组 chown -R www:www /home/lanmps/www chmod -R 777 /home/lanmps/www 这个时候访问本机 127.0.0.1:80 就可以看到 你的项目站点了
**
注意 使用IP端口连接,必须是固定IP才可以 **
docker run --name lanmps -p 80:80 -v /home/lanmps/www:/www/wwwroot -d foxiswho/nginx-php例如 本机ip 为 192.168.1.122 那么在链接 数据库3306 的时候,ip设置为192.168.1.122,端口号 3306
注意 本地 目录设置权限和用户组 chown -R www:www /home/lanmps/www chmod -R 777 /home/lanmps/www 这个时候访问本机 127.0.0.1:80 就可以看到 你的项目站点了
普通情况下容器创建时,该容器就会是启动状态,如果关机了,那么就要启动该容器
先启动没有任何链接的容器,最后启动 有关联的容器
sudo docker start 容器名称 sudo docker start redis sudo docker start mysql sudo docker start es sudo docker start lanmps删除所有容器
docker rm $(docker ps -q -a)删除所有镜像
docker rmi $(docker images -q)导出后再导入 的镜像会丢失所有的历史
Export命令用于持久化容器(不是镜像)
#1.先查看 所有容器 sudo docker ps -a #2.找到要导出容器 的 CONTAINER ID,然后执行命令 sudo docker export 容器CONTAINER ID > 导出地址文件名 即 sudo docker export 234wer2323dfdfdsfq > /home/export.tar保存后再加载(saveed-loaded)的镜像没有丢失历史和层(layer)
Save命令用于持久化镜像(不是容器)
#1.先查看 所有镜像 sudo docker images #2.找到要保存的镜像名称 sudo docker save 镜像名称 > 保存地址文件名 即 sudo docker save lanmps > /home/save-lanmps.tar因为lanmps 设置的端口为80,那么就可以直接 在浏览器上 输入 127.0.0.1, 就可以看到 你的项目站点了
相关资源:python入门教程(PDF版)