docker容器操作、docker應用部署、遷移備份、清理緩存
docker容器操作、docker應用部署、遷移備份

1. docker容器操作
1. 查看容器
docker ps # 查看正在運行的容器(常用) docker ps –a # 查看所有容器(暫停的,停止,正在運行的。。。)(常用) docker ps –l # 查看最后一次運行的容器 docker ps -f status=exited # 查看停止的容器
2. 通過鏡像創建并運行容器
創建容器命令:docker run -id/-it --name=容器名 -v 目錄映射,可以有多個 centos:centos7
-i:表示運行容器 -t:表示容器啟動后會進入其命令行。加入這兩個參數后,容器創建就能登錄進去。即分配一個偽終端。 --name :為創建的容器命名。容器名字不能重 -d:在run后面加上-d參數,則會創建一個守護式容器在后臺運行(這樣創建容器后不會自動登錄容器,如果只加-i -t兩個參數,創建后就會自動進去容器)。 -v:表示目錄映射關系(前者是宿主機目錄,后者是容器的目錄),可以使用多個-v做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然后共享到容器上。 -p:表示端口映射,前者是宿主機端口,后者是容器內的映射端口??梢允褂枚鄠€-p做多個端口映射
centos:centos7 #基于哪個鏡像跑容器:如果寫成centos表示跑最新的
#基于哪個鏡像跑容器(鏡像名字:tag):centos:centos7 如果寫成centos表示跑最新的 #如果沒有這個鏡像呢?去遠程拉,拉下來再跑 # 容器要運行,需要有一個前臺進程(-it 需要寫/bin/bash bash開設終端,進入容器需要在終端中操作,所以必須要bash)exit退出終端 docker run -it --name=mycentos7 centos:centos7 /bin/bash # 以守護進程形式跑(一般使用這種方式) docker run -di --name=mycentos2_2 centos:centos7
3. 進入容器內部(必須運行的容器)
三種方式:exec(推薦使用)、attach、ssh
# exec(用的最多):在docker中執行命令 # 進入容器 docker exec -it mycentos2_2 /bin/bash # exit 退出 # 查看容器文件夾 docker exec mycentos2_2 ls
4. 容器啟動與停止
docker stop 容器id/名字 docker start 容器id/名字 docker restart 容器id/名字
5. 文件拷貝
# 從宿主機copy到容器內部 docker cp s1.exe mycentos7:/home # 從容器內部copy出來 ./當前路徑 docker cp mycentos7:/home/s1.exe ./
6. 數據卷-v(目錄映射)
docker run -di --name=mycentos2_3 -v /root/test:/home centos:centos7 # 以后操作宿主機/root/test目錄和操作容器/home目錄會相互影響 # -v:數據卷,做目錄映射,前者是宿主機目錄,后者是容器的目錄
7. 查看容器信息
docker inspect 容器名字/容器id # 查看ip地址 docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器id/名字
8. 刪除容器
# 停止才能刪 docker rm 容器名字/id
9. 查看日志
docker logs 容器名/id
2. docker應用部署(容器端口映射)
# mysql服務 在docker中運行 -e表示環境變量有的服務需要加的,root密碼 docker run -id --name=mysql1 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 # redis服務 在docker中運行 docker run -id --name=myredis -p 6379:6379 redis
3. 遷移備份
容器里裝了python3.6, mysql,django, uwsgi ,redis 項目在里面-打包--》鏡像--》容器
1. 把容器打包成鏡像
# 把容器打包成鏡像
docker commit 容器名字 鏡像名字
docker commit mydjango mydjango_i
2. 基于該鏡像再跑起容器
docker run -di --name=mydjango2 mydjango_i
3. 把本地的鏡像打包成tar包壓縮,拷貝到其他機器上就能跑起容器
# save -o 打成一個tar包,壓縮一下(在當前目有個mydjango.tar) docker save -o mydjango.tar mydjango_i
4. copy這個tar包到其他裝有docker的機器上就能跑起容器所有的環境
# load -i 解壓恢復鏡像 docker load -i mydjango.tar
4. 清理緩存
刪除none的鏡像,要先刪除鏡像中的容器。要刪除鏡像中的容器,必須先停止容器。
1. 刪除none鏡像:docker rmi $(docker images | grep "none" | awk '{print $3}')
2. 一鍵清理 Build Cache 緩存命令:docker builder prune

浙公網安備 33010602011771號