Docker

1、docker安裝

yum install -y docker

#查看安裝的版本
docker version [-f {{.Server.Version}}]

2、docker三大核心概念

a、鏡像

docker運行容器前需要本地先存在對應的docker鏡像,如果鏡像不存在,docker默認去中央倉庫(docker hub)拉取鏡像。
用戶也可以配置自定義的本地docker倉庫,如果配置本地倉庫,則優先使用本地倉庫,本地倉庫不存在在最終去中央倉庫,類似maven的概念。

鏡像管理

1、下載鏡像
docker pull [options] [localhost:5000/] centos[:lastest]
Options:
  -a, --all-tags                Download all tagged images in the repository
      --disable-content-trust   Skip image verification (default true)
      --help                    Print usage
localhost:5000/爲倉庫地址
centos爲鏡像名稱
lastest爲tag,如果省略默認爲lastest

2、查看鏡像
docker images [OPTIONS] [REPOSITORY[:TAG]]

3、查找鏡像
docker search centos

4、刪除鏡像
docker rmi image_id

容器

簡單的說,容器是鏡像運行的一個實例。

容器管理

1、創建容器
docker create 
docker run
使用docker create創建的容器處於停止狀態,可以使用docker start
使用docker run爲新建容器並啓動容器,創建完後處於運行狀態
docker start CONTAINER
docker restart CONTAINER
docker stop CONTAINER
docker stats CONTAINER 

2、刪除容器
docker rm

3、進入容器
docker attach
docker exec

4、容器的遷移與備份
docker export centos > test_for_run.tar
使用docker export命令可以將實現容器的備份,配合docker import可以完成容器的遷移
docker import
導出的文件可以使用docker import命令導入,成爲鏡像

docker基本命令

docker volume

volume(數據卷)可以將容器以及容器產生的數據分離開,這樣,當使用docker rm container_id刪除容器,不會影響數據。很多人對volume有個誤解,認爲volume是爲了持久化,對立面這認爲容器不能持久化,這樣其實不對,容器是持久化的,除非將容器刪除,容器中的數據纔會丟失。

創建容器的方式

1、docker run -v的形式

docker run -it centos /host/path:/contains/path

2、查看docker容器的數據卷掛載情況
[root@k8s-master-101 ~]#  docker inspect 44abf11be31e | grep Mounts -A 10
        "Mounts": [
            {
                "Type": "volume",
                "Name": "86e8fd9103feb1083280538e39353331e270ceb535d2d969b8c92dada09ef24f",
                "Source": "/var/lib/docker/volumes/86e8fd9103feb1083280538e39353331e270ceb535d2d969b8c92dada09ef24f/_data",
                "Destination": "/rcl",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }

#在宿主機中執行
touch /var/lib/docker/volumes/86e8fd9103feb1083280538e39353331e270ceb535d2d969b8c92dada09ef24f/_data/1.txt

docker exec 44abf11be31e 
[root@44abf11be31e /]# ll rcl/
total 0
-rw-r--r--. 1 root root 0 Oct 22 16:33 1.txt


2、使用docker volume管理命令創建
docker volume create --name rcl --lable rcl
docker valume inspect rcl
[
    {
        "Driver": "local",
        "Labels": {
            "[rcl]": ""
        },
        "Mountpoint": "/var/lib/docker/volumes/rcl/_data",
        "Name": "rcl",
        "Options": {},
        "Scope": "local"
    }
]
touch /var/lib/docker/volumes/rcl/_data/2.txt
[root@k8s-master-101 ~]# docker run -it -v rcl:/rcl centos 
[root@5c85901d043d /]# ll /rcl/
total 0
-rw-r--r--. 1 root root 0 Oct 22 16:48 2.txt

3、通過dockerfile volume指令創建
通過dockerfile的 VOLUME 指令可以在鏡像中創建掛載點,這樣只要通過該鏡像創建的容器都有了掛載點。

還有一個區別是,通過 VOLUME 指令創建的掛載點,無法指定主機上對應的目錄,是自動生成的。

待補充
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章