Docker是一個開源的應用程序容器化平臺,可以簡化應用程序在不同操作系統上的管理和部署,同時也能夠提高系統資源的利用效率。下面介紹一些Docker的基礎知識。
安裝Docker
$ sudo apt-get update $ sudo apt-get install docker.io
容器
容器是一種類似于虛擬機的技術,但相比虛擬機更為輕量級。容器和虛擬機的一個主要區別是:容器內共享宿主機上的操作系統內核,而虛擬機則需要自己安裝一個完整的操作系統。
查看所有容器
$ docker ps -a
鏡像
鏡像是一種只讀的模板,由Dockerfile構建而來。Docker可以從鏡像中創建容器。一個容器可以由一個或多個鏡像構建而來。當然,鏡像也可以由其他鏡像構建而來。
查看所有鏡像
$ docker images
運行容器
$ docker run -it --name container_name image_name
其中,-it表示交互式運行,--name表示指定容器名稱,image_name表示要使用的鏡像名稱。
進入容器
$ docker exec -it container_name bash
其中,-it表示交互式運行,container_name表示要進入的容器名稱,bash表示指定要在容器內運行的shell。
停止和移除容器
$ docker stop container_name $ docker rm container_name
其中,container_name表示要停止或移除的容器名稱。
構建鏡像
可以通過Dockerfile構建鏡像。
FROM ubuntu:18.04 RUN apt-get update && apt-get install -y nginx EXPOSE 80/tcp CMD ["nginx", "-g", "daemon off;"]
其中,FROM指定基礎鏡像,RUN執行命令,EXPOSE指定暴露的端口,CMD指定容器啟動的命令。
執行以下命令構建鏡像。
$ docker build -t image_name .
其中,-t指定鏡像名稱,"."表示Dockerfile所在的目錄。
上傳和下載鏡像
可以使用docker push和docker pull命令上傳和下載鏡像到Docker官方倉庫或者私有倉庫。
上傳鏡像
$ docker login $ docker tag image_name username/repository:tag $ docker push username/repository:tag
其中,docker login登錄官方倉庫或私有倉庫,docker tag指定要上傳的鏡像名稱和倉庫名稱,docker push上傳鏡像到指定倉庫。
下載鏡像
$ docker pull username/repository:tag
其中,username/repository:tag表示要下載的鏡像名稱和版本號。