關於docker的介紹: https://www.cnblogs.com/neptunemoon/p/6512121.html
docker入門教程:http://www.docker.org.cn/book/docker/what-is-docker-16.html
不錯的一個命令介紹: https://blog.csdn.net/permike/article/details/51879578html
Docker 是一個開源的應用容器引擎,讓開發者能夠打包他們的應用以及依賴包到一個可移植的容器中,而後發佈到任何流行的Linux機器上,也能夠實現虛擬化,容器是徹底使用沙箱機制,相互之間不會有任何接口。java
一個完整的Docker有如下幾個部分組成:linux
docker Client客戶端
Docker Daemon守護進程
Docker Image鏡像
Docker Container容器nginx
sudo yum update
卸載舊版本(若是安裝過舊版本的話)
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine
web
安裝須要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
redis
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安裝最新版本docker
sudo yum install docker-ce
docker
開機自啓動
sudo systemctl start docker
sudo systemctl enable docker
shell
[root@docker ~]# cat /etc/docker/daemon.json { "dns": ["192.168.101.2","8.8.8.8"], "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }
#查看容器 #查看你已經下載好的鏡像 docker images #查找鏡像 docker search XX #下載鏡像 docker pull xx #刪除鏡像 docker rmi xx #開始 docker run 你的鏡像 #看日誌 docker logs 你的容器 #中止一個容器示例 docker stop 你的容器 #查看容器狀態 docker stats 你的容器 docker ps -l
搜索鏡像:
docker search nginx
nginx爲鏡像名稱(鏡像名稱如:centos、nginx、redis)json
拉取鏡像:
docker pull nginx
centos
列出本地鏡像:
docker images(docker images --help)
docker image ls -a
一樣是列出鏡像(docker image ls --help查看)
刪除鏡像:
docker rmi nginx
(docker rmi image_name/image_id)
docker image rm nginx
一樣是刪除鏡像(docker image rm image_name/image_id)
-f:force強制刪除(note:若是鏡像被容器佔用了,須要先刪除容器,才能刪除鏡像)
將鏡像導出成文件:
[ymsk@localhost main]$ docker save -o tomcat.docker.tar tomcat
本地文件加載成鏡像
docker load --input centos.tar
查看容器:
docker ps
docker ps -l
查看全部的容器:
docker ps -a
docker ps [OPTIONS] OPTIONS說明: -a :顯示全部的容器,包括未運行的。 -f :根據條件過濾顯示的內容。 --format :指定返回值的模板文件。 -l :顯示最近建立的容器。 -n :列出最近建立的n個容器。 --no-trunc :不截斷輸出。 -q :靜默模式,只顯示容器編號。 -s :顯示總的文件大小。
# docker run --help Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Run a command in a new container # docker run tomcat #啓動一個容器並執行命令(容器是本機host的一個進程,若是進程沒有後續操做,那麼狀態將是exited)
-建立一個名稱爲mycentos的container,並執行/bin/bash:
# docker run --name mycentos centos /bin/bash --name:表示容器的name,後面的centos表示使用的哪一個鏡像(鏡像name) /bin/bash:表示執行的command
docker start mycentos
docker stop mycentos
docker rm mycentos
-f:force強制刪除
# docker run -t --name mycentos centos /bin/bash [root@92f0af59184d /]#
docker run -d -p 8088:8080 tomcat
-d是後臺執行,-p是端口映射,講docker容器中的8080端口映射到8088端口[root@localhost ymsk]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1d7dc2ebb9ab tomcat "catalina.sh run" 14 seconds ago Up 13 seconds 0.0.0.0:8088->8080/tcp suspicious_goldwasser
能夠訪問映射的8088端口
[root@localhost main]# docker run -p 8080:8080 -t -i tomcat /bin/bash root@e9e88c9621a1:/usr/local/tomcat# ls BUILDING.txt CONTRIBUTING.md LICENSE NOTICE README.md RELEASE-NOTES RUNNING.txt bin conf include lib logs native-jni-lib temp webapps work root@e9e88c9621a1:/usr/local/tomcat# pwd /usr/local/tomcat
更快更好更強
使用 dockerfile
使用 crontab
使用 supervisr
docker # docker 命令幫助 Commands: attach Attach to a running container # 當前 shell 下 attach 鏈接指定運行鏡像 build Build an image from a Dockerfile # 經過 Dockerfile 定製鏡像 commit Create a new image from a container's changes # 提交當前容器爲新的鏡像 cp Copy files/folders from the containers filesystem to the host path # 從容器中拷貝指定文件或者目錄到宿主機中 create Create a new container # 建立一個新的容器,同 run,但不啓動容器 diff Inspect changes on a container's filesystem # 查看 docker 容器變化 events Get real time events from the server # 從 docker 服務獲取容器實時事件 exec Run a command in an existing container # 在已存在的容器上運行命令 export Stream the contents of a container as a tar archive # 導出容器的內容流做爲一個 tar 歸檔文件[對應 import ] history Show the history of an image # 展現一個鏡像造成歷史 images List images # 列出系統當前鏡像 import Create a new filesystem image from the contents of a tarball # 從tar包中的內容建立一個新的文件系統映像[對應 export] info Display system-wide information # 顯示系統相關信息 inspect Return low-level information on a container # 查看容器詳細信息 kill Kill a running container # kill 指定 docker 容器 load Load an image from a tar archive # 從一個 tar 包中加載一個鏡像[對應 save] login Register or Login to the docker registry server # 註冊或者登錄一個 docker 源服務器 logout Log out from a Docker registry server # 從當前 Docker registry 退出 logs Fetch the logs of a container # 輸出當前容器日誌信息 port Lookup the public-facing port which is NAT-ed to PRIVATE_PORT # 查看映射端口對應的容器內部源端口 pause Pause all processes within a container # 暫停容器 ps List containers # 列出容器列表 pull Pull an image or a repository from the docker registry server # 從docker鏡像源服務器拉取指定鏡像或者庫鏡像 push Push an image or a repository to the docker registry server # 推送指定鏡像或者庫鏡像至docker源服務器 restart Restart a running container # 重啓運行的容器 rm Remove one or more containers # 移除一個或者多個容器 rmi Remove one or more images # 移除一個或多個鏡像[無容器使用該鏡像纔可刪除,不然需刪除相關容器纔可繼續或 -f 強制刪除] run Run a command in a new container # 建立一個新的容器並運行一個命令 save Save an image to a tar archive # 保存一個鏡像爲一個 tar 包[對應 load] search Search for an image on the Docker Hub # 在 docker hub 中搜索鏡像 start Start a stopped containers # 啓動容器 stop Stop a running containers # 中止容器 tag Tag an image into a repository # 給源中鏡像打標籤 top Lookup the running processes of a container # 查看容器中運行的進程信息 unpause Unpause a paused container # 取消暫停容器 version Show the docker version information # 查看 docker 版本號 wait Block until a container stops, then print its exit code # 截取容器中止時的退出狀態值 Run 'docker COMMAND --help' for more information on a command.