Docker 安装和常用指令
目錄
- 名詞概念
- Docker 安裝
- Centos 安裝
- 測試 Hello World
- 卸載 Docker :
- 常用命令
- 幫助命令
- 鏡像命令
- 列出鏡像列表
- 搜索鏡像
- 下載鏡像
- 刪除鏡像
- 創建鏡像
- 容器命令
- 啟動容器
- 列出所有運行中的容器
- 啟動已經停止的容器
- 后臺運行一個容器
- 停止一個容器
- 重啟容器
- 進入容器
- 刪除容器
- 查看日志
- 查看容器中進程信息
- 查看鏡像的元數據
名詞概念
- 鏡像:Docker 的鏡像,就好比我們 Java 中的類一樣,通過類我們可以創建多個對象。也可以想,重裝系統的時候,我們往往需要一個 Windows 鏡像或 Linux 系統鏡像,這時候鏡像像一個文件系統,利用這些即可在我們電腦上安裝一個系統。
- 容器
- 鏡像和容器的關系,就像類和實例對象一樣,鏡像是靜態的,容器是通過鏡像運行時的實體,并且容器可以創建、啟動、停止、刪除、暫停等。
- 倉庫
- 可以看出代碼控制中心,比如 GitHub,Maven 等,簡單的理解為存放鏡像的地方
Docker 安裝
Centos 安裝
版本:
- CentOS 7 或更高
步驟:
卸載舊版本:
如果你之前用過,可能需要卸載舊的版本的相關依賴,舊的 Docker 版本稱為 docker 或 docker-engine。
$ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine安裝:
首次安裝的,在安裝 Docker 前,需要設置 Docker 倉庫。之后,您需要設置倉庫,后面就可以通過倉庫安裝和更新 Docker
設置倉庫:
首先需要安裝所需的軟件包,yum-config-manager 需要 yum-utils,device mapper 存儲驅動需要 device-mapper-persisten-data 和 lvm2
$ sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2設置倉庫地址,我這里選擇了阿里云的地址快一些
$ sudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安裝 Docker 的社區版
$ sudo yum install docker-ce docker-ce-cli containerd.io如果提示您接受 GPG 密鑰,請選是。
我們安裝完后,Docker 是默認沒有被啟動的,并且還創建了 Docker 用戶組,但是該組下面沒有用戶。
其他:
如果您需要安裝指定的 Docker 社區版,可以列出可用版本,在選擇安裝。
$ yum list docker-ce --showduplicates | sort -r [root@localhost ~]# yum list docker-ce --showduplicates | sort -r 已加載插件:fastestmirror 已安裝的軟件包 可安裝的軟件包* updates: mirrors.aliyun.com Loading mirror speeds from cached hostfile* extras: mirrors.aliyun.com docker-ce.x86_64 3:19.03.9-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.8-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.7-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.6-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.5-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.4-3.el7 docker-ce-stable docker-ce.x86_64 3:19.03.3-3.el7 docker-ce-stable然后通過其完整的軟件包名稱,安裝特定版本,該軟件包名稱(docker-ce)加上版本字符串(第二列),從第一個冒號(:)一直到第一個連字符,并用連字符(-)分隔。例如:docker-ce-19.03.9。
$ sudo yum install docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io配置阿里云鏡像加速:
阿里云鏡像獲取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors,登陸后,左側菜單選中鏡像加速器就可以看到你的專屬地址和操作文檔了。
啟動 Docker :
$ sudo systemctl start docker可以查看 Docker 版本看是否安裝成功
[root@localhost ~]# docker version [root@localhost ~]# docker version Client: Docker Engine - CommunityVersion: 19.03.13API version: 1.40Go version: go1.13.15Git commit: 4484c46d9dBuilt: Wed Sep 16 17:03:45 2020OS/Arch: linux/amd64Experimental: falseServer: Docker Engine - CommunityEngine:Version: 19.03.13API version: 1.40 (minimum version 1.12)Go version: go1.13.15Git commit: 4484c46d9dBuilt: Wed Sep 16 17:02:21 2020OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.3.7GitCommit: 8fba4e9a7d01810a393d5d25a3621dc101981175runc:Version: 1.0.0-rc10GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dddocker-init:Version: 0.18.0GitCommit: fec3683測試 Hello World
$ docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly.卸載 Docker :
# 卸載依賴 yum remove docker-ce docker-ce-cli containerd.io # 刪除資源 rm -rf /var/lib/docker # /var/lib/docker 是docker的默認工作路徑!常用命令
幫助命令
幫助文檔
顯示版本信息
docker version顯示 docker 的系統信息、鏡像、容器數量
docker info幫助命令
docker run --help鏡像命令
如果本地中,沒有要運行的鏡像,那么 docker 就會自動從 docker 鏡像倉庫中下載
| docker images | 查看所有本地主機上的鏡像 |
| docker search | 搜索鏡像 |
| docker pull | 下拉鏡像 |
| docker rmi | 刪除鏡像 |
列出鏡像列表
docker images
命令格式:
docker images [OPTIONS] [REPOSITORY[:TAG]]Options:-a, --all Show all images (default hides intermediate images) #列出所有鏡像-q, --quiet Only show numeric IDs # 只顯示鏡像的id例子:
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest bf756fb1ae65 9 months ago 13.3kB- **REPOSITORY:**表示鏡像的倉庫源
- **TAG:**鏡像的標簽,一個倉庫源有多個 TAG,因為代表這個倉庫源的不同版本(latest 是最新的版本)
- **IMAGE ID:**鏡像ID
- **CREATED:**鏡像創建時間
- **SIZE:**鏡像大小
搜索鏡像
使用 docker search 命令搜索鏡像,比如搜索 MySQL
[root@localhost ~]# docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 10075 [OK] mariadb MariaDB is a community-developed fork of MyS… 3694 [OK] mysql/mysql-server Optimized MySQL Server Docker images. Create… 736 [OK]-
NAME: 鏡像倉庫源的名稱
-
DESCRIPTION: 鏡像的描述
-
OFFICIAL: 是否 docker 官方發布
-
stars: 類似 Github 里面的 star,表示點贊、喜歡的意思。
-
AUTOMATED: 自動構建。
下載鏡像
使用 docker pull 鏡像 命令下載,例如下載 centos 鏡像
[root@localhost ~]# docker pull centos Using default tag: latest latest: Pulling from library/centos 3c72a8ed6814: Pull complete Digest: sha256:76d24f3ba3317fa945743bb3746fbaf3a0b752f10b10376960de01da70685fbd Status: Downloaded newer image for centos:latest docker.io/library/centos:latest刪除鏡像
Usage: docker rmi [OPTIONS] IMAGE [IMAGE...]
比如刪除 hello-world 鏡像
docker rmi hello-world # 刪除 hello-world 鏡像 docker rmi -f 鏡像id 鏡像id 鏡像id...# 刪除多個鏡像 docker rmi -f $(docker images -aq) # 顯示所有鏡像,然后當成參數傳入并且刪除Options:-f, --force 強制刪除鏡像創建鏡像
容器命令
| docker run -itd centos /bin/bash | 創建容器并且啟動,并以命令行模式進入容器,后臺模式啟動 |
| docker ps | 列出所有運行中的容器 |
| docker stop 容器id | 停止當前正在運行的容器 |
| docker restart 容器id | 重啟容器 |
| docker rm 容器id | 刪除容器 |
| docker attach 容器ID | 進入容器 |
| docker exec 容器ID | 進入容器 |
| docker top 容器id | 查看容器中進程信息 |
| docker logs 容器id | 查看日志 |
啟動容器
使用 docker run 命令創建容器并且啟動
docker run [options] image [command][ang...]以 centos 鏡像為例,參數以命令行的模式進入容器
[root@localhost ~]# docker run -it --name centos01 centos /bin/bash [root@c6de240f0c94 /]#參數說明:
- -i:交互式操作
- -t:終端
- --name:指定容器名
- centos:centos 鏡像
- /bin/bash:放在鏡像名后的是命令,這里我們希望有個交互式 Shell,因此用的是 /bin/bash。
退出當前容器到宿主機器,使用 exit 命令
[root@c6de240f0c94 /]# exit exit [root@localhost ~]#列出所有運行中的容器
[root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c6de240f0c94 centos "/bin/bash" 4 minutes ago Exited (0) About a minute ago elated_cray e267483ae3fc hello-world "/hello" 2 days ago Exited (0) 2 days ago amazing_allen 96558d441131 hello-world "/hello" 2 days ago Exited (0) 2 days ago reverent_ganguly參數說明:
-
-a:all ,顯示所有容器
-
-n:last int,顯示最后創建的n個容器(包括所有狀態)(默認為-1)
-
-q:quiet,只顯示 id
啟動已經停止的容器
可以先通過docker start 查看停止的容器 id,在通過該 id 啟動
[root@localhost ~]# docker start c6de240f0c94 c6de240f0c94后臺運行一個容器
我們大部分時候還是喜歡容器后臺運行的,可以通過 -d 指定容器的運行模式
[root@localhost ~]# docker run -itd --name centos-test centos /bin/bash 632b8174cb58e8d957171192e4c461752e7dd9e27ff657608b4ddb760363bbe9 [root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 632b8174cb58 centos "/bin/bash" 9 seconds ago Up 8 seconds centos-test c6de240f0c94 centos "/bin/bash" 20 minutes ago Up 4 minutes elated_cray e267483ae3fc hello-world "/hello" 2 days ago Exited (0) 2 days ago amazing_allen 96558d441131 hello-world "/hello" 2 days ago Exited (0) 2 days ago reverent_ganguly**注:**加了 -d 參數默認不會進入容器,想要進入容器需要使用指令 docker exec
停止一個容器
命令如下:
# docker stop 容器ID $ docker stop 632b8174cb58 632b8174cb58重啟容器
停止的容器,可以通過 docker restart 容器ID 重啟,命令如下:
$ docker restart 632b8174cb58進入容器
在使用 -d 參數時,容器啟動后會進入后臺。此時想要進入容器,可以通過以下指令進入:
- docker attach 容器ID
- $ docker attach 632b8174cb58
- 使用該命令,如果從容器退出,則會直接導致容器停止
- 進入當前容器后開啟一個新的終端,可以在里面操作。
- docker exec 容器ID
- docker exec -it 632b8174cb58 /bin/bash
- 使用該命令,如果從容器退出,則會直接導致容器停止
- 進入容器正在執行的終端
注:ctrl +P +Q 也可以容器不停止退出
刪除容器
- docker rm 容器id #刪除指定的容器,不能刪除正在運行的容器,如果要強制刪除 rm -rf
- docker rm -f $(docker ps -aq) #刪除指定的容器
- docker ps -a -q|xargs docker rm #刪除所有的容器
查看日志
使用命令 docker logs 查看日志
docker logs -t --tail n 容器id #查看n行日志 docker logs -ft 容器id #跟著日志查看容器中進程信息
使用命令 docker top 容器id
[root@localhost ~]# docker top 632b8174cb58 UID PID PPID C STIME TTY TIME CMD root 7657 7640 0 21:52 pts/0 00:00:00 /bin/bash查看鏡像的元數據
使用命令 ``docker inspect 容器id`
[root@localhost ~]# docker inspect 632b8174cb58 [{"Id": "632b8174cb58e8d957171192e4c461752e7dd9e27ff657608b4ddb760363bbe9","Created": "2020-10-20T15:06:52.579572805Z","Path": "/bin/bash","Args": [],"State": {"Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 7657,"ExitCode": 0,"Error": "","StartedAt": "2020-10-21T13:52:57.417445702Z","FinishedAt": "2020-10-21T13:50:12.958002365Z"},"Image": "sha256:0d120b6ccaa8c5e149176798b3501d4dd1885f961922497cd0abef155c869566","ResolvConfPath": "/var/lib/docker/containers/632b8174cb58e8d957171192e4c461752e7dd9e27ff657608b4ddb760363bbe9/resolv.conf", ..................................總結
以上是生活随笔為你收集整理的Docker 安装和常用指令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GameDesingerBeacon--
- 下一篇: 2023山西财经大学计算机考研信息汇总