天天看点

Docker - 项目部署

Centos7 + Python + Redis+ Mysql + Uwsgi + Nginx

先测试是否下载了docker:查看镜像:docker images

没有下载,就依次执行以下环境的安装

①curl http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

Docker - 项目部署

②yum install -y yum-utils device-mapper-persistent-data lvm2

Docker - 项目部署

③yum list docker-ce.x86_64 --showduplicates | sort -r

Docker - 项目部署

④yum install -y --setopt=obsoletes=0 docker-ce-17.03.2.ce-1.el7.centos.x86_64 docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch

Docker - 项目部署

⑤systemctl daemon-reload

systemctl restart docker

systemctl enable docker.service

Docker - 项目部署

⑥docker version

Docker - 项目部署

 docker安装成功。

直接复制阿里云:Docker-hub:https://cr.console.aliyun.com/cn-hangzhou/mirrors

先创建文件夹:mkdir -p /etc/docker

执行:

Docker - 项目部署

https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

从中央仓库中下载镜像到本地

docker pull 镜像名称:版本标签(如:docker pull mysql:5.6)

docker inspect 镜像id 或者 镜像名称:标签

方法一:先删除依赖镜像的容器:

docker rm 容器id 或者 容器名称 

容器id查找:这里docker ps -a 所有容器信息 -q 正在运行的容器ID

再删除镜像docker rmi 镜像id 或者 镜像名称

方法二:强制删除镜像,依赖它的容器会一并删除:

docker rmi 镜像id 或者 镜像名称:版本 -f

docker search 镜像名称

docker run -it 镜像id 或者 镜像名称:便签

-i 标准输入

-t 伪终端

-d 守护状态运行

--name 命名容器

-p 端口映射(宿主机端口:容器端口)

-P 端口映射(随机端口)

-v 文件挂载 (-v $PWD/redis/conf/redis.conf:/etc/redis/redis.conf)

本地文件/路径:容器文件/路径

不论修改宿主机还是容器内挂载的文件,会同时变化,避免要修改容器中文件内容

而需要安装vim或者复制文件至容器的操作。

-link 容器间通信(--link tesudrm_tsdrm:django_server)

关联的容器名称/id:关联容器服务器地址的别名(自动加载至hosts文件)

docker start 容器id 或 容器名称

docker stop 容器id 或 容器名称

docker exec -it 容器id 或 容器名称 /bin/bash

3.5 退出容器(后台运行)

Ctrl + p + q

docker pause 容器id 或者 容器名称(unpause取消暂停)

docker inspect 容器id 或 容器名称:版本号

docker rm 容器id 或 容器名称(只删除已经关闭或者退出的容器,-f表示强制)

docker cp 本地命令执行所在相对路径 容器id/名称:/root/(容器绝对路径)

如:docker cp /www/pro_tesu/MySQL/tesudrm.sql 容器ID:/root/

Docker - 项目部署

mkdir /www/pro_tesu/Redis/{conf,data} -p

mkdir /www/pro_tesu/MySQL/{conf.d,logs,data} -p

mkdir /www/pro_tesu/Nginx/log -p

mkdir /www/pro_tesu/TSDRM

touch /www/pro_tesu/MySQL/conf.d/my.cnf

touch /www/pro_tesu/Nginx/nginx.conf

touch /www/pro_tesu/Redis/conf/redis.conf

Docker - 项目部署

编辑my.cnf文件,添加内容:见附件

①拉取镜像:docker pull mysql:5.6

Docker - 项目部署

②创建容器

Docker - 项目部署

③拷贝sql文件至容器

前提是先把sql文件上传到/www/pro_tesu/MySQL文件夹下

docker cp /www/pro_tesu/MySQL/tesudrm.sql 容器ID:/root/

如:docker cp /www/pro_tesu/MySQL/tesudrm.sql 1e373b556bc6:/root/

Docker - 项目部署

④进入容器

docker exec -it 容器id或名称 /bin/bash 注:容器开启的状态下

cd /root/ 切换到容器的家目录下,ls可以查看是否有sql文件

Docker - 项目部署

⑤连接数据库mysql -u root –p回车输入密码即可。

Docker - 项目部署

⑥创建数据库

create database tesudrm charset=utf8;

Docker - 项目部署

⑦导入数据文件

mysql -uroot -ppassword tesudrm< tesudrm_v2.0.sql

Docker - 项目部署

 sql数据导入成功。

docker中redis默认无配置文件启动

配置文件redis.conf(根据需求自己配置,参数说明

requirepass tesunet

daemonize no

port 6379

编辑redis.conf文件,添加内容:见附件

①拉取镜像

docker pull redis:3.2

Docker - 项目部署

 ②创建容器

Docker - 项目部署

docker pull centos:6.8

Docker - 项目部署

docker run -itd centos:6.8 /bin/bash

Docker - 项目部署

docker exec -it 容器id bin/bash

Docker - 项目部署
Docker - 项目部署

安装软件报错:

Docker - 项目部署
Docker - 项目部署
Docker - 项目部署

docker commit -m "描述" -a "root" -p 容器id 镜像名称:版本号

如:docker commit -m "centos6.8_python3.4" -a "root" -p 容器id en_centos:2.2

运行容器之前先配置好文件,配置文件见附录

Docker - 项目部署
Docker - 项目部署
Docker - 项目部署
Docker - 项目部署
Docker - 项目部署

View Code

Docker - 项目部署
Docker - 项目部署
Docker - 项目部署
Docker - 项目部署
Docker - 项目部署
Docker - 项目部署
Docker - 项目部署
Docker - 项目部署
Docker - 项目部署
上一篇: Html5 画图
下一篇: 初识Html5