Centos7上安裝docker

Docker從1.13版本之后采用時間線的方式作為版本號,分為社區版CE和企業版EE。

社區版是免費提供給個人開發者和小型團體使用的,企業版會提供額外的收費服務,比如經過官方測試認證過的基礎設施、容器、插件等。

社區版按照stable和edge兩種方式發布,每個季度更新stable版本,如17.06,17.09;每個月份更新edge版本,如17.09,17.10。

一、安裝docker

1、Docker 要求 CentOS 系統的內核版本高于 3.10 ,查看本頁面的前提條件來驗證你的CentOS 版本是否支持 Docker 。

通過 uname -r 命令查看你當前的內核版本

$ uname -r

2、使用 root 權限登錄 Centos。確保 yum 包更新到最新。

$ sudo yum update

3、卸載舊版本(如果安裝過舊版本的話)

$ sudo yum remove docker? docker-common docker-selinux docker-engine

4、安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的

$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5、設置yum源

$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

6、可以查看所有倉庫中所有docker版本,并選擇特定版本安裝

$ yum list docker-ce --showduplicates | sort -r

7、安裝docker

$ sudo yum install docker-ce? #由于repo中默認只開啟stable倉庫,故這里安裝的是最新穩定版17.12.0

$ sudo yum install <FQPN>? # 例如:sudo yum install docker-ce-17.12.0.ce

8、啟動并加入開機啟動

$ sudo systemctl start docker

$ sudo systemctl enable docker

9、驗證安裝是否成功(有client和service兩部分表示docker安裝啟動都成功了)

$ docker version

二、問題

1、之前已經安裝過舊版本的docker,在安裝的時候會報錯如下:

Transaction check error:

? file /usr/bin/docker from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

? file /usr/bin/docker-containerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

? file /usr/bin/docker-containerd-shim from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

? file /usr/bin/dockerd from install of docker-ce-17.12.0.ce-1.el7.centos.x86_64 conflicts with file from package docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

2、卸載舊版本的包

$ sudo yum erase docker-common-2:1.12.6-68.gitec8512b.el7.centos.x86_64

3、再次安裝docker

$ sudo yum install docker-ce

#第二種方法安裝docker

yum install docker -y

systemctl start docker

systemctl enable docker

#Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.

#查看docker基本信息

docker info

#docker鏡像下載

#docker search : 從Docker Hub查找鏡像

docker search centos

#下載鏡像

#Usage:? docker pull [OPTIONS] NAME[:TAG|@DIGEST]

docker pull docker.io/centos

#查看鏡像列表

docker images

#鏡像標記

#docker tag : 標記本地鏡像,將其歸入某一倉庫。

#docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

docker tag ff426288ea90 registry

#運行一個container

#docker run :創建一個新的容器并運行一個命令

#docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-a stdin: 指定標準輸入輸出內容類型,可選 STDIN/STDOUT/STDERR 三項;

-d: 后臺運行容器,并返回容器ID;

-i: 以交互模式運行容器,通常與 -t 同時使用;

-P: 隨機端口映射,容器內部端口隨機映射到主機的高端口

-p: 指定端口映射,格式為:主機(宿主)端口:容器端口

-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用;

--name="nginx-lb": 為容器指定一個名稱;

--dns 8.8.8.8: 指定容器使用的DNS服務器,默認和宿主一致;

--dns-search example.com: 指定容器DNS搜索域名,默認和宿主一致;

-h "mars": 指定容器的hostname;

-e username="ritchie": 設置環境變量;

--env-file=[]: 從指定文件讀入環境變量;

--cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運行;

-m :設置容器使用內存最大值;

--net="bridge": 指定容器的網絡連接類型,支持 bridge/host/none/container: 四種類型;

--link=[]: 添加鏈接到另一個容器;

--expose=[]: 開放一個端口或一組端口;

--volume , -v: 綁定一個卷

docker run -dit registry:latest /bin/bash

docker ps -a

#進入/退出/殺死一個容器

#docker attach :連接到正在運行中的容器。

#docker attach [OPTIONS] CONTAINER

docker attach CONTAINER_ID

#這時發現通過exit退出容器。容器會關閉。

#通過Ctrl+P+Q的方式退出。容器不會關閉

#docker kill :殺掉一個運行中的容器。

docker kill CONTAINER_ID

#獲取容器日志

#docker logs : 獲取容器的日志

#docker logs [OPTIONS] CONTAINER

-f : 跟蹤日志輸出

--since :顯示某個開始時間的所有日志

-t : 顯示時間戳

--tail :僅列出最新N條容器日志

docker logs -f CONTAINER_ID

#刪除容器

docker rm :刪除一個或多少容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]

-f :通過SIGKILL信號強制刪除一個運行中的容器

-l :移除容器間的網絡連接,而非容器本身

-v :-v 刪除與容器關聯的卷

docker rm -f CONTAINER_ID

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Docker從1.13版本之后采用時間線的方式作為版本號,分為社區版CE和企業版EE。 社區版是免費提供給個人開發...
    liuzx32閱讀 278評論 0 0
  • Docker從1.13版本之后采用時間線的方式作為版本號,分為社區版CE和企業版EE。 社區版是免費提供給個人開發...
    wolfe404閱讀 541評論 0 1
  • Centos7上安裝docker Docker從1.13版本之后采用時間線的方式作為版本號,分為社區版CE和企業版...
    charging2018閱讀 462評論 1 0
  • Docker從1.13版本之后采用時間線的方式作為版本號,分為社區版CE和企業版EE。 社區版是免費提供給個人開發...
    初xin工作室閱讀 168評論 0 0
  • Docker從1.13版本之后采用時間線的方式作為版本號,分為社區版CE和企業版EE。 社區版是免費提供給個人開發...
    平凡的小螞蟻閱讀 282評論 0 0