一 docker是什麼?
docker是目前比較火的容器引擎,開發者可以打包應用以及依賴到可移植的容器中,然後發佈到任何流行的Linux容器上,也可以實現虛擬化。容器完全使用沙箱機制,相互之間不會有任何接口。
二 安裝docker
yum包更新到最新
sudo yum update
安裝需要的軟件包 yum-util提供yum-config-manager功能 ,另外兩個是devicemappe驅動依賴的
sudo yum install -y yum-utils device-mapper-persistent-data 1vm2
設置爲yum源爲阿里雲
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安裝docker ce是社區版
sudo yum install docker-ce
安裝後查看docker版本
docker -v
三 設置docker爲國內鏡像
設置docker國內鏡像,不然拉取一些鏡像的速度會非常慢,使用的是國外站點,我剛開始使用的阿里鏡像,但是啓動docker一直無法啓動,後面更換了鏡像就可以了。
vi /etc/docker/daemon.json
將下面鏡像之間複製進去,當然也可以選擇其他國內鏡像
{
"registry-mirrors":["https://registry.docker-cn.com"]
}
我在設置鏡像的時候沒有找到cocker文件夾,我是自己通過命令創建出來的
mkdir /etc/docker
四 docker的一些常用命令
啓動docker
systemctl start docker
查看docker啓動狀態
systemctl status docker
停止docker
systemctl stop docker
重啓docker
systemctl restart docker
設置開機自啓
systemctl enable docker
五 docker鏡像的一些常用命令
查看鏡像
docker images
搜索鏡像,搜索的是互聯網裏面的
docker search 鏡像名稱包含的字
拉取鏡像
docker pull 鏡像名稱
刪除鏡像
docker rmi 鏡像ID|鏡像名稱
刪除全部鏡像
docker rmi `docker images -q`
六 docker容器的一些命令
- 創建查看容器
查看容器
docker ps
查看所有容器
docker ps -a
查看最後一次運行的容器
docker ps -l
查看停止的容器
docker ps -f status=exited
查看容器日誌
docker logs -f -t --since="2018-03-31" --tail=100 elastic_raman
–since : 此參數指定了輸出日誌開始日期,即只輸出指定日期之後的日誌。
-f : 表示查看實時日誌
-t : 查看日誌產生的日期
-tail=200 : 查看最後的200條日誌。
sleepy_snyder 容器的名稱,並不是鏡像的名字
創建容器
docker run
-i:表示運行容器
-t:表示容器啓動後會進入其命令行,加入這兩個參數後,容器創建完成就會登陸進去,相當於一個僞終端
--name:爲容器命名
-v:表示目錄映射關係(前者是宿主機,後者是映射到宿主機的目錄),可以使用多個-v做多個目錄或者文件的映射。最好是最目錄映射 ,在宿主機上做修改然後共享到容器上面
-d:在run後面加上-d參數。則會創建一個守護式容器在後臺運行(這樣不會自動登陸容器。如果過只加-i,-t兩個參數會直接進入到容器裏面)
-p:表示端口映射,前者是宿主機,後者是容器內的映射端口,也是可以多個-p做多個端口映射
- 交互式方式創建容器
docker run -it --name=MyTest 鏡像名稱:鏡像標籤 /bin/MyTest
/bin/MyTest==就是交互式方式運行之後,運行的命令(相當於加載鏡像容器的命令行)
當前已經進入到容器裏了。從新開一個窗口,就可以看到當前運行的容器了
退出容器,容器也會關機
exit
- 守護式方式創建容器
name名字是唯一的,即使之前的容器關機了,也不能出現重複名稱
docker run -di --name=Mycentos1 centos:latest
進入容器
docker exec -it Mycentos1 /bin/bash
此時通過命令exit退出,但是容器並不會關機
- 停止啓動容器
停止容器
docker stop 容器名稱|容器ID
啓動容器
docker start 容器名稱|容器ID
- 文件拷貝,目錄掛載
docker cp 需要拷貝的文件或者目錄 容器名稱:容器目錄
docker cp 容器名稱:容器目錄 需要拷貝的文件或者目錄
目錄掛載 宿主機的/docker/MyTest與容器的/usr/local共享
docker run -di --name=MyCentos2 -v /docker/MyTest:/usr/local centos:latest
這裏是中文,查看的時候出現亂碼了
這個命令可以查看容器的很多東西,包括IP地址
docker inspect MyCentos2
直接查詢所需要的信息,如IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' MyCentos2
刪除容器
docker rm 容器名稱|容器ID
七 docker備份與遷移
容器保存爲鏡像
docker commit 容器名稱 鏡像名稱
容器備份 將
docker save -o 導出文件名 鏡像名稱
導入鏡像
docker load -i 備份的鏡像文件名