簡介
Docker提供了一種在容器中運行安全隔離的應用程序的方法,它與所有依賴項和庫打包在一起。
Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從Apache2.0協議開源。
Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。
容器是完全使用沙箱機制,相互之間不會有任何接口(類似 iPhone 的 app),更重要的是容器性能開銷極低。
Docker 從 17.03 版本之後分爲 CE(Community Edition: 社區版) 和 EE(Enterprise Edition: 企業版),我們用社區版就可以了。
學習資料
Docker官網: https://docs.docker.com/
Docker——從入門到實踐: https://yeasy.gitbooks.io/docker_practice/content/introduction/
Docker容器使用|菜鳥教程: http://www.runoob.com/docker/docker-container-usage.html
安裝
教程
https://docs.docker.com/install/linux/docker-ce/centos/
卸載舊版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
設置Docker存儲庫從存儲庫安裝和更新Docker
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
安裝DOCKER CE
yum install docker-ce docker-ce-cli containerd.io
啓動Docker
#啓動
systemctl start docker
#重啓
service docker restart
卸載
#卸載docker包
yum remove docker-ce
#刪除docker文件
rm -rf /var/lib/docker
概念
鏡像(Image)
Docker 鏡像(Image),就相當於是一個 root 文件系統。
Docker 鏡像是一個特殊的文件系統,除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些爲運行時準備的一些配置參數(如匿名卷、環境變量、用戶等)。鏡像不包含任何動態數據,其內容在構建之後也不會被改變。
容器(Container)
鏡像(Image)和容器(Container)的關係,就像是面向對象程序設計中的 類 和 實例 一樣,鏡像是靜態的定義,容器是鏡像運行時的實體。容器可以被創建、啓動、停止、刪除、暫停等。
容器內的進程是運行在一個隔離的環境裏,使用起來,就好像是在一個獨立於宿主的系統下操作一樣。這種特性使得容器封裝的應用比直接在宿主運行更加安全。
倉庫(Repository)
鏡像構建完成後,可以很容易的在當前宿主機上運行,但是,如果需要在其它服務器上使用這個鏡像,我們就需要一個集中的存儲、分發鏡像的服務,Docker Registry 就是這樣的服務。
一個 Docker Registry 中可以包含多個 倉庫(Repository);每個倉庫可以包含多個 標籤(Tag);每個標籤對應一個鏡像。
docker命令
列出所有鏡像 docker images
列出正在運行的容器 docker ps
查看所有容器 docker ps -a
刪除鏡像 docker rmi [IMAGE ID]
docker image rm [IMAGE ID]
查看日誌 docker logs [CONTAINER ID]
啓動容器 docker run -d --name [NAMES] -p [端口:端口] -e "key=value" [IMAGE NAMES]
停止容器 docker kill [NAMES]
退出容器 exit
進入容器 docker exec -it [CONTAINER ID] /bin/bash