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

②yum install -y yum-utils device-mapper-persistent-data lvm2
③yum list docker-ce.x86_64 --showduplicates | sort -r
④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
⑤systemctl daemon-reload
systemctl restart docker
systemctl enable docker.service
⑥docker version
docker安裝成功。
直接複制阿裡雲:Docker-hub:https://cr.console.aliyun.com/cn-hangzhou/mirrors
先建立檔案夾:mkdir -p /etc/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/
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
編輯my.cnf檔案,添加内容:見附件
①拉取鏡像:docker pull mysql:5.6
②建立容器
③拷貝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 exec -it 容器id或名稱 /bin/bash 注:容器開啟的狀态下
cd /root/ 切換到容器的家目錄下,ls可以檢視是否有sql檔案
⑤連接配接資料庫mysql -u root –p回車輸入密碼即可。
⑥建立資料庫
create database tesudrm charset=utf8;
⑦導入資料檔案
mysql -uroot -ppassword tesudrm< tesudrm_v2.0.sql
sql資料導入成功。
docker中redis預設無配置檔案啟動
配置檔案redis.conf(根據需求自己配置,參數說明
requirepass tesunet
daemonize no
port 6379
編輯redis.conf檔案,添加内容:見附件
①拉取鏡像
docker pull redis:3.2
②建立容器
docker pull centos:6.8
docker run -itd centos:6.8 /bin/bash
docker exec -it 容器id bin/bash
安裝軟體報錯:
docker commit -m "描述" -a "root" -p 容器id 鏡像名稱:版本号
如:docker commit -m "centos6.8_python3.4" -a "root" -p 容器id en_centos:2.2
運作容器之前先配置好檔案,配置檔案見附錄
View Code