轻轻松松学docker ,文章末尾提供资料下载。
yum remove docker docker-common docker-selinux docker-engine
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
##部分网络可能上面的源会卡可使用阿里源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates|sort -r
yum -y install docker-ce
sudo systemctl enable docker
sudo systemctl start docker
docker run hello-world
为了快速构建,本次项目采用dockerhub上的镜像
这是传送门 2233466866/lnmp
【镜像】 可以理解为操作系统的镜像文件如
iso
、gho
文件
docker pull 2233466866/lnmp
【容器】 可形象理解为操作系统吧!
【启动容器】 可理解为安装操作系统 该操作系统把我们主要的应用都集成了
docker run -dit \
-p 9999:80 \
-p 443:443 \
-p 3306:3306 \
-p 9000:9000 \
--privileged=true \
--name=lnmp \
2233466866/lnmp
注: -p [宿主机端口]:[容器端口]
-d 如果使用了 -d 参数运行容器 此时容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 docker logs 查看)。
–name 是给容器起个名称 方便后面使用
连接容器 可以理解为通过终端登录进系统了 如
xshell
或crt
连接linux
#容器名称与上一步保持一致
如果出现如下显示则说明换件安装成功至此环境已经搭建完成
具体配置修改可以进入容器修改,然后就像linux下操作完全一样了
如遇配置问题可以参考【LNMP环境搭建】
容器停止命令docker container stop [容器名称]
容器启动命令docker container start [容器名称]
docker container stop lnmp
docker container start lnmp
#进入容器中查看如下配置(可自己修改)
# PHP配置文件
/usr/local/php7/lib/php.ini
/usr/local/php7/etc/php-fpm.conf
/usr/local/php7/etc/php-fpm.d/www.conf
#nginx配置文件
/usr/local/nginx/conf/nginx.conf
# mysql配置文件位置
/etc/my.cnf
docker: Error response from daemon: driver failed \
programming external connectivity on endpoint lnm1p \
(75654aff31376dbf030941c1278a62dbbbc246843bec07525d2980c81a088f2c): \
Bind for 0.0.0.0:9000 failed: port is already allocated.
使用 netstat -onutpl
查看端口占用情况并关闭占用程序
docker: Error response from daemon: Conflict. \
The container name "/lnm1p" is already in use by container\ "546478d9f9ad5eba83caa33e9cd3fae451ff\
3aa05ce14424dfb57644f0e780a6". \
You have to remove (or rename) \
that container to be able to reuse that name.
See 'docker run --help'.
出现这种情况说明这个容器名称已经有了,你可以通过 docker ps -a
查看所有容器,你可以选择删除重名的容器或将你的容器重命名
删除容器命令 docker rm -f [容器名称或id]
docker run -dit \
-p 9999:80 \
-p 443:443 \
-p 3306:3306 \
-p 9000:9000 \
--privileged=true \
--name=lnmp \
2233466866/lnm1p
services iptables stop
cat /var/log/mysqld.log|grep 'A temporary password'
已经下载的用户可以跳过此步骤。
docker pull 2233466866/lnmp
使用此方法将项目目录挂载在宿主机的指定位置方便业务部署
# 高级用法(Advanced usage)
docker run -dit \
-p 9999:80 \
-p 443:443 \
-p 3306:3306 \
-p 9000:9000 \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-v /data/docker-lnmp/www:/www \
--privileged=true \
--name=lnmp2 \
2233466866/lnmp
docker exec -it lnmp2 bash
查容器中的/www
目录发现该目录下已经存在 index.html
说明挂载文件没问题。
我们在宿主机中编辑 /data/docker-lnmp/www/index.html
录入如下内容
访问效果
同样我们可以输出 phpinfo
信息
我们在宿主机中新建 /data/docker-lnmp/www/index.php
文件
/**
* User : 扣丁曼
* Email : [email protected]
* Blog : http://52qcg.cn
* QQ : 876146977
* 微信 : caimh0223
* Date : 2020-04-03
* Time : 10:55
* Description : ********
*/
echo phpinfo();
END
好吧!今天就到这里。
喜欢docker的小伙伴可免费领取docker学习电子书籍
领取方式 关注公众号 扣丁曼 回复 docker 即可!需要其他资料也可以向我留言,我想尽办法满足你!