#更新yum软件管理器
yum -y update
#安装docker
yum install -y docker
#配置docker加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
修改docker的配置文件
vi /etc/docker/daemon.json
配置一下CDN
在/etc/resolv.conf文件中新增一个参数
然后重启docker
service docker restart
查看docker版本确认是否安装成功
docker version
搜索LNMP镜像
docker search LNMP
选取stars最多的镜像作为环境
拉取镜像
docker pull 2233466866/lnmp
问题1 :拉取镜像时会报以下错误Get https://registry-1.docker.io/v2/: read tcp 192.168.174.128:49316->3.229.227.53:443: read: connection reset by peer
解决 :Docker Error response from daemon: Get https://registry-1.docker.io/v2/: read tcp的问题
首先:
通过dig @114.114.114.114 registry-1.docker.io找到可用IP
配置找到的可用ip:
修改hosts文件vi /etc/hosts添加进刚才找的可用ip:
52.87.94.70 registry-1.docker.io
保存退出即可
问题2 :拉取镜像太慢
解决 :登录阿里云后,访问https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,会看到加速器地址,复制下来,执行后面的命令。
#编辑 /etc/docker/daemon.json 配置文件 将复制出来的阿里云加速器地址添加到json数组中
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
#重启 Docker 服务
systemctl daemon-reload
systemctl restart docker
#检查是否生效
docker info
结果中显示了我们设置的镜像服务器地址,则说明设置已经生效
查看镜像是否拉取成功
docker images
可以看到拉取成功!
启动容器
docker run -it --privileged --name=lnmp -p 20016:80 -p 3306:3306 -v ~/www:/www -v ~/lnmp-data/env/mysqlData:/data/mysql -v ~/lnmp-data/env/nginx.conf:/usr/local/nginx/conf/nginx.conf 2233466866/lnmp
问题1 :启动容器时会报以下错误:/usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:235: starting container process caused "container init exited prematurely
原因 : linux 与 docker 版本的兼容性问题,可以尝试重新安装 docker 或者升级linux内核
解决 :第一种:yum update
解决 :第二种:升级docker版本
1.卸载旧版本 docker
yum remove docker docker-common docker-selinux dockesr-engine -y
2.升级系统软件
yum upgrade -y
3.安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4.添加软件源信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
5.更新并安装 docker-ce
yum makecache fast
yum install docker-ce -y
6.启动服务
systemctl daemon-reload
systemctl restart docker
说明:
~/www 是工作目录
~/lnmp-data/env/mysqlData 是数据库目录
~/lnmp-data/env/nginx.conf 是nginx是配置文件
20016是本地端口
我的一个项目 目录是~/www/wwwroot/laravel,所以nginx.conf配置文件的内容如下:
user www;
worker_processes auto;
worker_cpu_affinity auto;
pid logs/nginx.pid;
events {
worker_connections 102400;
}
http {
charset utf-8;
server_tokens off;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
include mime.types;
default_type application/octet-stream;
client_max_body_size 20M;
sendfile on;
keepalive_timeout 20;
gzip on;
gzip_vary on;
gzip_comp_level 1;
gzip_types text/css application/javascript application/json image/png image/webp image/apng image/jpeg image/x-icon;
error_log /www/z_error.log;
access_log /www/z_$host.log main;
server {
listen 80;
server_name www.test.com;
root /www/wwwroot/laravel/public;
index index.html index.htm index.php
autoindex on;
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$query_string;
}
location ~* \.php {
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
}
其他命令
docker ps -a 查看所有容器
docker stop ****** 停止运行容器
docker rm ***** 删除容器(删除前需停掉)
评论