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山西财经大学计算机考研信息汇总