1. 程式人生 > >Docker安裝快速入門

Docker安裝快速入門

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安裝快速入門