Docker安裝快速入門
阿新 • • 發佈:2018-01-28
nerd cal docs mapper 軟件 true str -c umount
用Docker的logo簡單解釋就是 一艘貨輪上面擺放著許多個集裝箱,沒用集裝箱之前 形狀不同 大小不同的各類貨物難以擺放,現在將貨物都放進集裝箱裏面,方便了管理與存儲。
詳細概念參照官網文檔https://docs.docker.com/
Docker分三個部分
鏡像:一個靜態的模板,無法修改 類似於鏡像文件。
容器:用來存儲運行鏡像的實例,可以讀寫。
倉庫:用來存儲docker鏡像的,分公有倉庫和私有倉庫。
話不多說 開始操作
這裏我們我們用Centos7 默認配置的網絡源安裝Docker
[root@localhost yum.repos.d]# yum install docker-io -y 已加載插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.cn99.com * extras: mirrors.cn99.com * updates: mirrors.cn99.com 正在解決依賴關系 --> 正在檢查事務 ---> 軟件包 docker.x86_64.2.1.12.6-68.gitec8512b.el7.centos 將被 安裝 --> 正在處理依賴關系 docker-common = 2:1.12.6-68.gitec8512b.el7.centos,它被軟件包 2:docker-1.12.6-68.gitec8512b.el7.centos.x86_64 需要 --> 正在處理依賴關系 docker-client = 2:1.12.6-68.gitec8512b.el7.centos,它被軟件包 2:docker-1.12.6-68.gitec8512b.el7.centos.x86_64 需要 ...... 已安裝: docker.x86_64 2:1.12.6-68.gitec8512b.el7.centos 作為依賴被安裝: audit-libs-python.x86_64 0:2.7.6-3.el7 checkpolicy.x86_64 0:2.5-4.el7 container-selinux.noarc container-storage-setup.noarch 0:0.8.0-3.git1d27ecf.el7 docker-client.x86_64 2:1.12.6-68.gitec8512b.el7.centos docker-common.x86_64 2: libcgroup.x86_64 0:0.41-13.el7 libseccomp.x86_64 0:2.3.1-3.el7 libsemanage-python.x86_ oci-register-machine.x86_64 1:0-3.13.gitcd1e331.el7 oci-systemd-hook.x86_64 1:0.1.14-1.git1ba44c6.el7 oci-umount.x86_64 2:2.3 policycoreutils-python.x86_64 0:2.5-17.1.el7 python-IPy.noarch 0:0.75-6.el7 setools-libs.x86_64 0:3 skopeo-containers.x86_64 1:0.1.26-2.dev.git2e8377a.el7.centos yajl.x86_64 0:2.0.4-4.el7 作為依賴被升級: audit.x86_64 0:2.7.6-3.el7 audit-libs.x86_64 0:2.7.6-3.el7 libsemanage.x86_64 0:2.5-8.el7 policycoreutil 完畢! [root@localhost yum.repos.d]#
重啟一下Docker 查看一下運行狀態 一切正常
[root@localhost yum.repos.d]# systemctl restart docker.service [root@localhost yum.repos.d]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled) Active: active (running) since 日 2018-01-28 10:06:39 CST; 6s ago Docs: http://docs.docker.com Main PID: 12399 (dockerd-current) CGroup: /system.slice/docker.service ├─12399 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt nativ... └─12403 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --metrics... 1月 28 10:06:38 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:38.509321705+08:00" level=info msg="devmapper: Successfully cre...3-base" 1月 28 10:06:38 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:38.617007435+08:00" level=info msg="Graph migration to content-...econds" 1月 28 10:06:38 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:38.618435419+08:00" level=info msg="Loading containers: start." 1月 28 10:06:38 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:38.652764572+08:00" level=info msg="Firewalld running: true" 1月 28 10:06:38 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:38.880818461+08:00" level=info msg="Default bridge (docker0) is...ddress" 1月 28 10:06:39 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:39.074971244+08:00" level=info msg="Loading containers: done." 1月 28 10:06:39 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:39.075173483+08:00" level=info msg="Daemon has completed initialization" 1月 28 10:06:39 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:39.075193331+08:00" level=info msg="Docker daemon" commit="ec85...=1.12.6 1月 28 10:06:39 localhost.localdomain systemd[1]: Started Docker Application Container Engine. 1月 28 10:06:39 localhost.localdomain dockerd-current[12399]: time="2018-01-28T10:06:39.103609290+08:00" level=info msg="API listen on /var/run/docker.sock" Hint: Some lines were ellipsized, use -l to show in full. [root@localhost yum.repos.d]#
docker管理命令:
container 管理容器 image 管理鏡像 network 管理網絡 命令: attach 介入到一個正在運行的容器 build 根據 Dockerfile 構建一個鏡像 commit 根據容器的更改創建一個新的鏡像 cp 在本地文件系統與容器中復制 文件/文件夾 create 創建一個新容器 exec 在容器中執行一條命令 images 列出鏡像 kill 殺死一個或多個正在運行的容器 logs 取得容器的日誌 pause 暫停一個或多個容器的所有進程 ps 列出所有容器 pull 拉取一個鏡像或倉庫到 registry push 推送一個鏡像或倉庫到 registry rename 重命名一個容器 restart 重新啟動一個或多個容器 rm 刪除一個或多個容器 rmi 刪除一個或多個鏡像 run 在一個新的容器中執行一條命令 search 在 Docker Hub 中搜索鏡像 start 啟動一個或多個已經停止運行的容器 stats 顯示一個容器的實時資源占用 stop 停止一個或多個正在運行的容器 tag 為鏡像創建一個新的標簽 top 顯示一個容器內的所有進程 unpause 恢復一個或多個容器內所有被暫停的進程
在子命令中還有更多豐富的選項,可以使用 docker COMMAND --help
查看。例如:
docker run --help
現在我們利用docker部署一個nginx服務器
先搜索 nginx鏡像
[root@localhost yum.repos.d]# docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 6959 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 1134 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 452 [OK]
下載nginx鏡像
[root@localhost yum.repos.d]# docker pull nginx
Using default tag: latest
Trying to pull repository docker.io/library/nginx ...
latest: Pulling from docker.io/library/nginx
e7bb522d92ff: Pull complete
6edc05228666: Pull complete
cd866a17e81f: Pull complete
Digest: sha256:285b49d42c703fdf257d1e2422765c4ba9d3e37768d6ea83d7fe2043dad6e63d
[root@localhost yum.repos.d]#
查看一下鏡像倉庫
[root@localhost yum.repos.d]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/nginx latest 3f8a4339aadd 4 weeks ago 108.5 MB
[root@localhost yum.repos.d]#
用我們下載的nginx鏡像創立一個容器,並把容器內的80端口映射到centos7的8080端口
[root@localhost yum.repos.d]# docker run --name nginx -d -p 8080:80 nginx
客戶端訪問一下IP加端口
一個簡單的部署實例就做完了
Docker安裝快速入門