目录

  • 名词概念
  • 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      强制删除镜像

创建镜像

  1. 可以从已经创建的容器中更新镜像,并且提交这个镜像
  2. 使用 Dockerfile 指令来创建一个新的镜像

容器命令

命令 描述
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 安装和常用指令相关推荐

  1. 【Nginx那些事】nginx 安装及常用指令

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  2. docker基础——关于安装、常用指令以及镜像制作初体验

    为什么使用docker docker就是一个轻量级的虚拟机,他解决的是服务迁移部署的时候环境配置问题.比如常见的web服务依赖于jdk.Tomcat.数据库等工具,迁移项目就需要在新的机器重新配置这些 ...

  3. 狂神说--docker学习笔记-docker安装,常用命令,以及使用

    狂神说bilibili视频地址:https://www.bilibili.com/video/BV1og4y1q7M4?p=1 1. Docker概述 1.1 Docker为什么出现? 大家经常做一款 ...

  4. docker 安装与常用命令与常用容器(containers)环境

    注意区别 container 与 image 的关系,container 的建立需要 image 的承载,也即 container 依赖 image,停止并删除了 container 并不会删除 im ...

  5. docker系列一 docker 安装和常用命令

    安装Docker 在Ubuntu sudo apt-get update sudo apt-get install docker 执行sudo docker version,如果看到如下信息则表示安装 ...

  6. docker安装nginx,配置nginx,并成功访问

    [Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...

  7. docker安装和操作

    2. Docker安装启动 2.1运行安装环境 采用Linux操作系统,版本为:Centos7.0 64位 Docker采用CE版:18.06.0.ce-3 2.2 Docker安装过程 2.2.1 ...

  8. 【Docker学习笔记 二】Docker安装、运行流程与常用命令

    上一篇Blog详细介绍了Docker为什么会出现,是为了解决什么问题而出现:Docker的基本组成部分.架构.本篇Blog就来详细了解下Docker如何安装.卸载以及常用的操作命令有哪些.因为Dock ...

  9. Docker——使用docker工具管理软件/组件的运行,镜像、容器、数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境

    Docker--使用docker工具管理软件/组件的运行,镜像.容器.数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境 一.docker的安装和卸载 1.卸载 2.安装 3. 导 ...

最新文章

  1. 方法 - 查询到本周的日期
  2. iptables规则备份和恢复、firewall的zone的操作、service的操作
  3. 白话Elasticsearch56-数据建模之 Path Hierarchy Tokenizer 对文件系统进行数据建模以及文件搜索
  4. Postman界面了解
  5. Java中final和static对修饰类、方法、属性的总结
  6. 智力题:64匹马8个跑道,至少需要多少轮才能挑选出最快的4匹马
  7. 要想拿到字节50k*16薪,你还需要做什么?
  8. php stripslashes和addslashes的区别
  9. cs系统如何上云服务器,cs架构程序怎么连接云服务器
  10. 最新PHP编程零基础入门项目实战教程(完整)
  11. 计算机思维在化工方面的应用,化工类院校计算机基础教学中计算思维的培养
  12. 关于人像后期处理基础的相关技术步骤
  13. eclipse git 取远程代码_【JAVA】Eclipse中使用git进行pull远程代码
  14. linux防火墙reject,Iptables 扩展动作 Reject Mark
  15. Ubuntu下tar命令使用详解 .tar解压、.tar压缩
  16. 银河麒麟服务器操作系统V10SP2搭建FTP服务端
  17. 抖音二面:为什么模块循环依赖不会死循环?CommonJS和ES Module的处理不同?
  18. 心理测评系统软件使用问题二
  19. mysql8.0如何授权_MySQL8.0 创建用户及授权
  20. 汉字无法被计算机替代作文,雅思大作文范文:老师会被电脑替代吗

热门文章

  1. 央视春晚歌手王琪,和戏歌双绝吴广全在长春芝华仕会盟
  2. 工作学会9句话,升职加薪变股东
  3. Android【Retrofit(HTTP客户端),RxJAVA(响应式编程)】
  4. 百度地图查询周围建筑
  5. 点开计算机桌面选项怎么不见了,电脑桌面开始菜单不见了应该如何解决?_开始菜单不见了解决办法介绍...
  6. 如何查看电脑WIFI密码
  7. Thinkpad电脑安装ubuntu,遇到问题“Minimal BASH-like line editing is supported”
  8. 能温柔的时候,请别尖锐
  9. opencv读图的坐标系转换问题
  10. python怎么模拟鼠标移动点击_Python模拟鼠标点击——如何正确的肝阴阳师