一、安装docker
1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本
$ uname -r
2、使用 root 权限登录 Centos。确保 yum 包更新到最新。
$ sudo yum update
3、卸载旧版本(如果安装过旧版本的话)
$ sudo yum remove docker docker-common docker-selinux docker-engine
4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
5、设置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
6、可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
7、安装docker
$ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
8、启动并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
9、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version
二、问题
1、因为之前已经安装过旧版本的docker,在安装的时候报错如下:
Transaction check error:
file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
2、卸载旧版本的包
$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64
3、再次安装docker
$ sudo yum install docker-ce
⚠️:国外镜像一般很难访问,建议配置阿里云镜像。yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
三 基于Docker安装nginx
基于docker安装nginx
1.查找镜像并拉取镜像
$ sudo docker search nginx
$ sudo docker pull nginx
$ sudo docker images nginx
- 运行nginx:
- 安装完成后,我们可以使用以下命令来运行 nginx 容器
参数说明:
- --name nginx-test:容器名称。
- -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口。
- -d nginx: 设置容器在在后台一直运行。
docker run -d -p 8083:80 --name ngix-8083 nginx
- 停止关闭一个正在运行的容器
root@autotest ~]# docker stop ngix-8000
ngix-8000
[root@autotest ~]#
docker restart ngix-8000
问题:老是关闭防火墙太麻烦,所以选择彻底关闭防火墙,发现每次都记不住命令!
下面是red hat/CentOs7关闭防火墙的命令!
1:查看防火状态
systemctl status firewalld
service iptables status
2:暂时关闭防火墙
systemctl stop firewalld
service iptables stop
3:永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
4:重启防火墙
systemctl enable firewalld
service iptables restart
5:永久关闭后重启
//暂时还没有试过
chkconfig iptables on
3.1 假如遇到镜像起不来
docker run -d -p 8080:80 --name ngix-guo2 nginx
重启docer
systemctl restart docker
3.1.1 Docker 拉取 报错【error pulling image configuration】及镜像下载慢问题
出现这个问题原因为网络问题,无法连接到 docker hub。 但国内有 daocloud加速,docker指定该源即可
echo "DOCKER_OPTS=\"\$DOCKER_OPTS --registry-mirror=http://f2d6cb40.m.daocloud.io\"" | sudo tee -a /etc/default/docker
DOCKER_OPTS="$DOCKER_OPTS --registry-mirror=http://f2d6cb40.m.daocloud.io"
镜像下载慢问题:
vi /etc/docker/daemon.json
添加一下内容:
{
"registry-mirrors": ["https://hccwwfjl.mirror.aliyuncs.com"]
}
重新启动Docker
systemctl restart docker
3.2 docker 常用命令
3.2.1 删除容器
删除容器:
docker rm -f +容器名称
3.2.2 删除镜像
Docker rmi +镜像名称
3.2.3 重启docker
systemctl restart docker
3.2.4 查看运行的容器
docker ps
3.2.5 查看容器
docker container ls -a
3.2.6 进入容器
docker exec -it kafka1 /bin/bash
注意:kafka1 是容器的名称
- linux下安装uWsgi
安装命令:
pip install uwsgi
-
- uwsgi 的安装
配置文件:
#表示uwsgi模块
[uwsgi]
#项目目录
chdir=/opt/AutomationPlatform/
#指定项目的应用,固定写法,承接上面的项目目录
module=AutomationPlatform.wsgi:application
#sock文件存放目录,方便nginx进行sock连接交互
socket=/opt/AutomationPlatform/script/uwsgi.sock
#并发进程
workers=5
#进程id存放文件
pidfile=/opt/AutomationPlatform/script/uwsgi.pid
#启动的ip及端口
http=192.168.12.175:8000
#静态文件映射,第一个等于代表Django里面的别名,第二个等于后面是Django里面的真实路径
#static-map=/static=/opt/AutomationPlatform/frontend/static/
#启动的用户和组
uid=root
gid=root
#启用主进程
master=true
#自动移除unixSocket和pid文件当服务停止的时候
vacuum=true
#序列化接受的内容,如果可能的话
thunder-lock=true
#启用线程
enable-threads=true
#设置自中断时间
harakiri=36000
#设置缓存
post-buffering=4096
#日志存放目录,方便拍错
daemonize=/opt/AutomationPlatform/script/uwsgi.log
#5.2 启动配置文件uwsgi
uwsgi --ini uwsgi.ini
# 启动 uwsgi --ini uwsgi.ini # 关闭 uwsgi --stop uwsgi.pid
5.3 安装nginx,配置yum源
文件名称:
/etc/yum.repos.d//etc/yum.repos
配置文件内容:
[nginx]
name=nginx repo
#下面这行centos,根据你自己的操作系统修改比如:os/rehel
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
5.3.1 配置好yum源后,执行安装命令
yum -y install nginx
如下图即安装完成:
5.3.2 增加nginx配置文件
放配置文件的路径:
/etc/nginx/conf.d/AutomationPlatform.conf
配置内容:
user nginx;
worker_processes auto;
error_log /opt/AutomationPlatform/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /opt/AutomationPlatform/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
location / {
root /opt/AutomationPlatform/vue_test/dist;
index index.html index.htm;
# 指定uwsgi的sock文件所有动态请求就会直接丢给他
#:uwsgi_pass unix:/opt/AutomationPlatform/scripts/uwsgi.sock;
#proxy_pass http://192.168.12.175:8000;
}
location /api {
proxy_pass http://192.168.12.175:8000;
}
# location
# root: 将接收到的资源根据/usr/local/nginx/html/dist文件夹去查找资源
# index: 默认去上述路径中找到index.html或者index.htm
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include /etc/nginx/conf.d/*.conf;
}
启动nginx:/usr/sbin/nginx -s reload
重启:
./nginx -s reload
日志路径: