docker install
docker install參考網址
較老的版本docker所所支持命令和和部分文件路徑會有偏差所以統一卸載它以及所屬依賴庫
yum remove docker docker-common docker-selinux docker-engine
使用存儲庫進行安裝
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
安裝依依環境
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
安裝docker-ce
yum -y install docker-ce
-- 啟動docker
systemctl start docker
-- 檢查狀態
systemctl status docker
*卸載Docker
yum remove docker-ce
service docker start - docker 啟動
service docker stop - docker 關閉
1.docker 鏡像創建—使用的默認鏡像有數據卷
docker pull hub.c.163.com/library/mysql:5.7.18 – 獲取鏡像
docker images - 查看鏡像(鏡像id)
docker tag mysql:latest tmysql:5.7 – 添加鏡像標簽
docker rmi –f images_id – 刪除鏡像 (-f 強制刪除鏡像)
2.docker 容器的創建
docker run --name tmysql -v /home/dly:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d images_id – 創建并啟動容器,同時有掛載配置文件,注意/home/dly權限。
docker run --name ttpostgres -p 5433:5432 -e POSTGRES_PASSWORD=123456 -v /home/dly:/var/lib/postgresql -d postgres:9.6
docker start container – 啟動容器
docker stop container – 關閉容器
docker ps –a - 查看容器
docker exec- it container_id /bin/bash – 進入容器
docker inspect tmysql – 查看容器的元數據
3.通過已有的容器創建鏡像 存出和載入
docker ps – 查看備份容器的container_id
docker commit -p container_id container-backup - 使用 docker commit 命令來創建快照,生成一個作為Docker鏡像的容器快照,
docker images – 查看是否生成鏡像
-- # docker tag a25ddfec4d2a arunpyasi/container-backup:test
docker save -o ~/container-backup.tar container-backup - 作為tar包備份。
ls – 查看tar包是否存在。
scp –r ~/ container-backup.tar root@10.2.0.3:/home/dly - 服務器遷移
docker load -i ~/container-backup.tar- 加載該Docker鏡像了。
docker images -查看是否鏡像下載
docker run -d -p 3306:3306 –-name tmysql container-backup - 運行Docker容器。
docker exec –it contain_id /bin/bash –進入容器
- 通過已有的數據卷容器的存出和載入
備份
docker run –it –v /var/lib/mysql –name tmysql image_id - 創建一個帶有數據卷的容器.
導入數據
docker run --volumes-from container_name -v $(pwd):/backup images_id tar cvf /backup/backup.tar /var/lib/mysql
docker run --volumes-from container_name -v $(pwd):/backup images_id tar cvf /backup/backup.tar /var/lib/postgresql/data
--利用數據卷容器備份,使用 –volumes-from 標記來創建一個加載 data 容器卷的容器,并從主機掛載當前目錄到容器的 /backup 目錄。容器啟動后,在當前目錄下生成的backup.tar 文件就是data容器卷的備份文件.
恢復
docker run --name tmysql -p 3306:3306 -v /home/dly:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 -d image_id -創建一個帶有空數據卷的容器 這個鏡像自動帶有數據卷,i是打開容器中的stdin,t是為容器分配一個偽終端.這里的d是后臺運行,并打印容器ID容器,容器運行 。
docker run --volumes-from contain_name -v $(pwd):/backup image_id tar xvf /backup/backup.tar
重啟docker
源文件服務器
apt-get update
apt-get install ssh – 安裝ssh
apt-get install vim-gtk – 安裝vim
su – postgress
pg_dumpall | ssh root@10.0.0.96 'cat > /var/pgbackup/db.out' – 目錄存在
目標文件服務器-- /var/lib/postgresql/data
docker run --name ttpostgres2 -p 5410:5432 -e POSTGRES_PASSWORD=123456 -v /var:/var/lib/postgresql -d postgres_vim:9.6 - 啟動容器掛載
Docker ps
docker exec –it ttpostgres2 /bin/bash –進入容器
Vim var/lib/postgresql.sql i-> Esc ->:wq(保存退出) ,:q!(不保存退出)
su – postgres – 切換超級用戶
cd /var/lib/postgresql - 進入目標路徑
psql -f db.out postgres
Postgresql 數據表導入導出
1.導出
pg_dump -U postgres(用戶名) (-t 表名) 數據庫名(缺省時同用戶名) > 路徑/文件名.sql
postgres@debian:~$ pg_dump -U postgres -t system_calls wangye > ./test.sql
2.導入
$ createdb newdatabase
$ psql -d newdatabase -U postgres -f mydatabase.sql // sql 文件在當前路徑下
$ psql -d databaename(數據庫名) -U username(用戶名) -f < 路徑/文件名.sql // sql 文件不在當前路徑下
$ su postgres #切換到psql用戶下
$ psql -d wangye -U postgres -f system_calls.sql # sql 文件在當前路徑下