DOCKER應用
( windows上安裝docker)
1、docker怎樣做資料備份,怎樣防止容器崩潰導致資料丟失?
Docker的特性,決定了容器本身是非持久化的,容器被刪除後其中的資料也一併被刪除了。Docker提供資料卷(Volume),透過掛載宿主機上的目錄來實現持久儲存。
但在叢集環境中,宿主機上的資料卷有很大的侷限性
- 容器在機器間遷移時,資料無法遷移
- 不同機器之間不能共享資料卷
為了解決這些問題,阿里雲容器服務提供第三方資料卷,將各種雲端儲存包裝成資料卷,可以直接掛載在容器上,並在容器重啟、遷移時自動重新掛載。目前支援ossfs和雲盤兩種儲存。
二所資料庫應用使用
宿主機上的資料卷滿足要求。
2、不同核心Dockers的應用
現在Docker只能執行在Linux核心的機器上。
所以在Windows或是Mac系統上,需要透過執行Linux的虛擬機器來使用Docker服務。
而Docker Toolbox提供了一整套工具,讓你在Windows或Mac系統上更快的搭建起這套環境。
Docker Toolbox 元件包括:
- Docker Client
- Docker Machine
- Docker Compose (Mac only)
- Docker Kitematic
- VirtualBox
Docker Toolbox 適用於 Mac OS X 10.10.3+ 或 Windows 7 & 8.1。
在Windows安裝 docker 有兩種選擇 :
1、docker for windows
2、docker toolbox
區別:
docker for windows-64位Windows 10、必須開啟 Hyper-V
docker toolbox -有virtualbox即可
2.1 DockerToolbox-18.03.0-ce.exe( )
* Kitematic,這是GUI管理Docker的工具
a) 透過迅雷 下載最新 v19.03.5 版本boot2docker.iso, 放到 系統盤使用者目錄\.docker\machine\cache下,點選Docker Quickstart Terminal 圖示來啟動 Docker Toolbox 終端,執行後會在Virtualbox中建立一個叫做default的虛擬機器,出現 Start interactive shell提示:直接使用docker命令,也可以透過用PowerShell進行虛擬機器的管理:
docker-machine ls // Docker虛擬機器的狀態
docker-machine create --driver=virtualbox default // 建立一個Docker虛擬機器
docker-machine env default // 獲得虛擬機器的環境變數
docker-machine env default | Invoke-Expression // 把當前的PowerShell和虛擬機器裡面的Docker Linux建立的連線,接下來就可以在PowerShell中使用docker命令.
https://developer.aliyun.com/mirror/docker-toolbox?spm=a2c6h.13651102.0.0.35dd1b11nt3EwC
b)映象加速win7
需要設定獨立於賬號密碼的Registry登入密碼,便於映象的上傳、下載。( )
針對安裝了Docker Toolbox的使用者,參考以下配置步驟:
建立一臺安裝有Docker環境的Linux虛擬機器,指定機器名稱為default,同時配置Docker加速器地址。 到PowerShell中去依次執行
docker-machine ssh default sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=加速地址 |g" /var/lib/boot2docker/profile exit docker-machine restart default
重啟Docker後就可以用國內的映象來加速下載了。
c)映象加速器 CentOS7
CentOS7 的配置,需要先將預設的配置檔案複製出來
/lib/systemd/system/docker.service -> /etc/systemd/system/docker.service
然後再將加速器地址新增到配置檔案的啟動命令
重啟Docker就可以了。
sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon --registry-mirror=<your accelerate address>|g" /etc/systemd/system/docker.service sudo sed -i "s|ExecStart=/usr/bin/dockerd|ExecStart=/usr/bin/dockerd --registry-mirror=<your accelerate address>|g" /etc/systemd/system/docker.service sudo systemctl daemon-reload sudo service docker restart
3、 win7-- virtualbox-- boot2docker--mysql容器 網路梳理
a)mysql(docker容器): //mysql IP:PORT : 172.17.0.2:3306 ,Server version: 8.0.19 MySQL Community Server
PowerShell進入容器>docker exec -it c9bb34c9995b bash
# mysqladmin -uroot -pabc
# mysql -uroot -pabc //進入mysql--ok
問題1) mysql>GRANT ALL ON *.* TO 'sa'@'%' IDENTIFIED BY 'abc'; //不支援 IDENTIFIED BY
mysql>GRANT ALL ON *.* TO 'root'@'%' ; //ok
問題2) SQLyog連線報錯“ Authentication plugin 'caching_sha2_password' cannot be loaded”, 出現這個原因是mysql8 之前的版本中加密規則是mysql_native_password, 之後是caching_sha2_password,
mysql>ALTER USER 'root'@'%' identified with mysql_native_password by 'abc' // 把mysql使用者登入密碼加密規則還原成mysql_native_password, SQLyog連線OK.
問題3)(未驗證) 使用SQL Manager Lite for MySQL匯入二所備份資料庫atcdb.back,報錯(匯出dump也報錯):
Error: ERROR 2026 (HY000): SSL connection error: unknown error number
mysql> SHOW VARIABLES LIKE '%ssl%'; //檢視 have_ssl的值為YES,表示已開啟SSL
修改配置檔案my.cnf, 加入內容: skip_ssl ,然後service mysqld restart生效, have_ssl的值為DISABLED,表示已關閉SSL。
匯入二所資料庫):使用SQLyog,按SQL語句執行 匯入OK。 atcdb.back是sql批處理檔案。
b)boot2docker: Linux default 4.14.154-boot2docker x86_64
docker0:172.17.0.1
eth0:10.0.2.15
eth1:192.168.99.100 //netstat -an | grep 3306 //檢視所有3306埠使用情況:OK
vethb40b498: 沒有IPv4地址
c)virtualbox: 網路卡1:NAT
網路卡2:VirtualBox Host-Only Network #2
ssh管理虛擬機器boot2docker:docker-machine ip 獲取IP,或檢視C:\Users\mizy\.docker\machine\machines\default\config.json
d)win7:VirtualBox Host-Only Network:192.168.56.1
VirtualBox Host-Only Network #2:192.168.99.1 //ping 192.168.99.100 (OK);netstat -an | findstr 3306 (No)
無線網路連線:DHCP
docker run -d -p 192.168.99.1:3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=‘abc' mysql:latest //cannot assign requested IP address
docker run -d -p 192.168.99.100:3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD='abc' mysql:latest //run OK
docker
rm
$(
docker
ps
-a -q)
//
remove刪除所有容器
docker run -d --name nginx --volume nginx-vol:/usr/share/nginx/html -p 80:80 nginx:latest //nginx/html
持久化儲存於
boot2docker虛擬機器的/var/lib/docker/volumes/
nginx-vol/_data/目錄下,
_data目錄為空則容器複製內容,不為空容器不複製。自動重新整理網頁index.htm:新增
<head><meta http-equiv="refresh" content="60"></head>
實現通播號實時更新。
4、MySQL容器使用vi 《測試OK》
MySQL容器沒有vi,yum,但是有apt-get。
a)更換apt源,cat /etc/os-release,檢視版本Debian GNU/Linux 10,百度Debian 10 apt國內源:
echo 'deb deb http://mirrors.163.com/debian/ buster-updates main non-free contrib# deb http://mirrors.163.com/debian/ buster-backports main non-free contribdeb-src # deb-src http://mirrors.163.com/debian/ buster-updates main non-free contribdeb-src http://mirrors.163.com/debian/ buster-backports main non-free contrib deb http://mirrors.163.com/debian-security/ buster/updates main non-free contrib deb-src http://mirrors.163.com/debian-security/ buster/updates main non-free contrib' > /etc/apt/sources.list
b)apt-get update //重新整理快取列表
c)apt-get install vim -y //安裝vim
5、 資料庫在CentOS6裡的名稱是mysql-server
製作Docker映象:docker commit rongqi-id phpwing:v1
修改容器時區重啟生效:UTC-->CST
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
6、dockerfile支援自定義容器的初始命令。 dockerfile不能出現互動式的命令。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7970627/viewspace-2679003/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Docker_Docker應用部署4Docker
- 用 Docker 建立 serverless 應用DockerServer
- java應用docker化JavaDocker
- Docker部署Angular應用DockerAngular
- docker 打包 php 應用DockerPHP
- 應用容器引擎-DockerDocker
- Docker管理應用資料Docker
- 使用 Docker 部署 Node 應用Docker
- Docker常用的應用部署Docker
- calico docker 應用例項Docker
- 使用Docker安裝應用Docker
- Docker 入門系列三:Docker 應用部署-MySQLDockerMySql
- Docker 入門系列三:Docker 應用部署-NginxDockerNginx
- Docker 入門系列三:Docker 應用部署-RedisDockerRedis
- 如何使用 docker 部署前端應用Docker前端
- Docker Compose 多容器應用Docker
- SpringBoot應用Docker化Spring BootDocker
- Docker中部署.NET CORE應用(控制檯應用程式篇)Docker
- Docker容器化部署Python應用DockerPython
- 聊聊.net應用程式的Docker映象Docker
- docker stack滾動更新web應用DockerWeb
- centos+docker+mysql 配置與應用CentOSDockerMySql
- 如何Docker化任意一個應用Docker
- Docker 運維高階應用管理Docker運維
- Docker學習—概念及基本應用Docker
- Docker應用容器日誌資訊收集Docker
- Docker下Nacos配置應用開發Docker
- Docker 命令大全及應用實戰Docker
- [Docker應用系列·1]淺析JedisPoolDocker
- Docker 的應用場景在哪裡Docker
- docker 生產環境基礎應用Docker
- 【轉】Docker部署Tomcat及Web應用DockerTomcatWeb
- Laravel 8.x 新建應用 使用 DockerLaravelDocker
- 在生產環境使用Docker部署應用Docker
- Docker的安裝與容器應用部署Docker
- 初識docker以及node應用的部署Docker
- 微服務--MQ安裝(+Docker命令應用)微服務MQDocker
- Docker容器與虛擬化技術:OpenEuler 部署 docker容器應用Docker