天天看點

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