上一篇文章寫的是Docker的安裝和啟動,啟動了Docker我們可以進行鏡像的安裝了,鏡像就是包含各種應用的操作系統。
一、鏡像相關命令
1.搜索鏡像
命令行的方式: docker search python #搜索關於python的鏡像 在網站搜索: https://hub.docker.com/ #一般在網站上搜索方便看,搜索好之后再安裝
搜索關於帶python的Docker
2.下載鏡像
docker pull centos:centos7.7.1908 #指定下載centos7.7.1908版本的 docker pull centos #沒有指定版本就下載最新版本
3.查看下載的鏡像
docker images
REPOSITORY:鏡像名稱
TAG:鏡像標簽
IMAGE ID:鏡像ID
CREATED:鏡像的創建日期
SIZE:鏡像大小
這些鏡像都是存儲在Docker宿主機的/var/lib/docker目錄下
4.刪除鏡像:
docker rmi id號 #根據id號來刪除鏡像
刪除所有鏡像
docker rmi 'docker images -q'
二、容器相關命令
1.啟動容器(基於image啟動)
創建容器命令:docker run
創建容器常用的參數說明:
-i:表示運行容器 -t:表示容器啟動后會進入其命令行。加入這兩個參數后(/bin/bash),容器創建就能登錄進去。即分配一個偽終端。 --name :為創建的容器命名。 -v:表示目錄映射關系(前者是宿主機目錄,后者是映射到宿主機上的目錄),可以使用多個-v做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然后共享到容器上。 -d:在run后面加上-d參數,則會創建一個守護式容器在后台運行(這樣創建容器后不會自動登錄容器,如果只加-i -t兩個參數,創建后就會自動進去容器)。 -p:表示端口映射,前者是宿主機端口,后者是容器內的映射端口。可以使用多個-p做多個端口映射
注意:docker run 和 docker exec的差異
docker run :根據鏡像創建一個容器並運行一個命令,操作的對象是 鏡像; #一般和-id使用 docker exec :進入在運行的容器中執行命令,操作的對象是 容器 #一般和-it使用
交互式方式創建容器:(以命令行模式進入容器)
docker run -it --name=容器名稱 鏡像名稱:標簽 /bin/bash #/bin/bash放在鏡像后的是命令,這里是希望有個交互的shell
創建之后就進入容器,可以執行命令行,該模式創建的容器如果退出了,需要重新 docker start 容器名 才能開啟容器
退出當前容器
exit
守護式方式創建容器:(在后台運行)
docker run -id --name=容器別名 鏡像名稱:鏡像版本
創建的容器會在后台一直運行,不會退出
示例:啟動centos7
docker run -id --name mycentos7 centos:centos7.7.1908
2.進入到容器內部:(先run啟動一個容器,然后再用exec進入容器)
docker exec -it 容器名稱(或者容器ID) /bin/bash
進入容器有四種方法:1.acctch 2.exec 3.nsenter 4.SSH (最常用的就是exec)
nsenter和exec之間的區別:
1.exec是docker自帶的命令,nsenter是linux提供的命令
2.exec相當於在容器內執行一個命令,而nsenter是僅僅進入容器之中而已
退出容器:exit
3.停止與啟動已有的容器
docker stop 容器id/名字 #停止
docker start 容器id/名字 #啟動已經存在的容器
4.查看容器
查看正在運行的容器
docker ps
查看所有容器
docker ps -a
查看最后一次運行的容器
docker ps -l
查看停止的容器
docker ps -f status=exited
5.文件拷貝(重點******)
向里拷貝(從宿主機--->>容器)
docker cp 需要拷貝的文件或目錄 容器名稱:容器目錄
示例:宿主機下的aa文件夾拷貝到容器內的home目錄下 (注意:是在宿主機環境下運行)
docker cp aa mycentos7:/home
向外拷貝(從容器內--->> 宿主機) (注意:也是在宿主機里面執行下面命令)
docker cp 容器名稱:要拷貝的容器目錄 要拷貝到宿主機的文件或目錄
示例:容器內的/home/cc.txt拷貝到/home目錄下,注意路徑書寫正確
6.目錄掛載(重點******)
我們可以在創建容器的時候,將宿主機的目錄與容器內的目錄進行映射,這樣我們就可以通過修改宿主機某個目錄的文件從而影響容器內的文件。在宿主機環境下運行
創建容器 添加-v參數 后邊為 宿主機目錄:容器目錄,例如: (-v是做目錄映射),不管哪邊修改都會互相影響
docker run -id -v /home/test:/home/test --name=mycentos3 centos:centos7.7.1908
進入容器centos3,有映射的文件/home/test/a
7.查看容器ip地址
docker inspect 容器名字/id #會出現一大堆容器信息
可以直接查找ip地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名稱(容器ID)
8.刪除容器(必須先stop容器才能刪除)
docker rm 容器名稱(容器ID)