天天看點

centos7.4 docker安裝mysql

Docker安裝指令

Linux安裝Docker

// 僅此一條指令就可以搞定

yum -y install docker-io

// 啟動Docker

// 同理,stop、restart意味着停止、重新開機Docker

service docker start

// 加入開機啟動

chkconfig docker on

安裝docker-compose

pip install -U docker-compose

Docker基本操作指令

建立容器

docker create Ubuntu:latest

啟動容器

docker start [CONTAINER ID]

建立并啟動容器

// 啟動容器輸出hello world之後,容器自動終止

docker run ubuntu /bin/echo ‘hello world’

// 啟動一個bash終端,允許使用者進行互動

// -t 選項讓Docker配置設定一個僞終端并綁定到容器的标準輸出上

// -i 讓容器的标準輸入保持打開

// 使用 Ctrl+d 或 exit 退出容器

docker run -t -i ubuntu:latest /bin/bash

// 容器以守護态運作,即背景運作

// -d 選項讓Docker以守護态運作

// 運作成功會傳回一個唯一的ID

docker run -itd ubuntu

終止容器運作

docker stop [CONTAINER ID]

重新開機容器

docker restart [CONTAINER ID]

檢視目前啟動的容器資訊

docker ps

檢視目前終止的容器資訊

// 僅顯示CONTAINER ID

docker ps -a -q

//顯示終止容器的詳細資訊

docker ps -a

進入容器

// 當容器使用 -d 選項背景運作之後,需要進入容器,可使用下面指令

// 該指令缺點:當多個視窗同時進入同一個容器時,所有視窗都會同步顯示,當某個視窗因指令阻塞時,其他視窗

// 也無法執行操作了

docker attach [CONTAINER ID]

// 更好的選擇

docker exec -ti [CONTAINER ID] /bin/bash

删除容器

// 該指令可删除處于終止狀态的容器,正在運作的容器該指令不奏效

docker rm [CONTAINER ID]

// 删除運作中的容器

docker rm -f [CONTAINER ID]

導出容器

// 将容器導出為test.tar

docker export [CONTAINER ID] > test.tar

導入容器

docker import test.tar test/ubuntu:v1.0

導出鏡像

docker save -o quay.io-calico-node-1.tar quay.io/calico/node

導入鏡像

docker load -i quay.io-calico-node-1.tar

容器重命名

docker rename [老容器名稱] [新容器名稱]

将容器送出為鏡像

// 參數說明:[CONTAINER ID] 容器ID、test/CentOS_test_1為REPOSITORY,即存儲庫、v1.0版本

// -a:送出鏡像作者

// -c:使用Dockerfile指令來建立鏡像

// -m:送出時的說明文字

// -p:在commit時,将容器暫停

docker commit [CONTAINER ID] test/centos_test_1:v1.0

Docker資料卷及資料卷容器

挂載本地目錄

// –privileged=true 設定為true在容器内才能通路挂載目錄

// 這條語句是将 /data/docker_test/tets_1 目錄挂載到容器的/data/test_1/目錄上

// 同時啟動容器

docker run -itd –privileged=true -v /data/docker_test/test_1/:/data/test_1/ ubuntu:latest

資料卷容器

挂載資料卷容器

// 1. 建立資料卷容器 dbdata,并在其中建立一個資料卷挂載到 /dbdata

docker run -i -t -v /dbdata –name dbdata centos

// 2. 可以在其他容器中使用 –volumes-from來挂載dbdata容器中的資料卷

// 3. 建立 db1、db2兩個容器,并從dbdata容器挂載資料卷

// 4. 此時,容器db1、db2都挂載同一個資料卷到相同的 /dbdata目錄。三個容器任何一方在該目錄下寫入,其他

// 容器都可以看到

docker run -i -t –volumes-from dbdata –name db1 centos

docker run -i -t –volumes-from dbdata –name db2 centos

// 5. 可以多次使用 –volumes-from參數來從多個容器挂載多個資料卷。還可以從其他已經挂載了容器卷的容器來

// 挂載資料卷

docker run -d –name db3 –volumes-from db1 centos

備份

// 首先利用centos鏡像建立容器worker。使用 –volumes-from dbdata 參數來讓worker容器挂載

// dbdata容器的資料卷;使用 -v $(pwd):/backup參數來挂載本地的目前目錄到worker容器的/backup

// 目錄。容器啟動後,使用 tar cvf /backup/backup.tar /dbdata指令來将 /dbdata下的内容備份

// 為容器内 /backup/backup.tar,即宿主主機目前目錄下的backup.tar

docker run –volumes-from dbdata -v $(pwd):/backup –name worker centos tar cvf /backup/backup.tar /dbdata

恢複

// 1. 建立一個帶有資料卷的容器dbdata2

docker run -v /dbdata –name dbdata2 centos /bin/bash

// 2. 建立另一個容器,挂載dbdata2的容器,并解壓備份檔案到所挂載的容器卷中即可

docker run –volumes-from dbdata2 -v $(pwd):/backup –name worker ubuntu bash

cd /dbdata

tar xvf /backup/backup.tar