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 强制删除镜像
创建镜像
- 可以从已经创建的容器中更新镜像,并且提交这个镜像
- 使用 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 安装和常用指令相关推荐
- 【Nginx那些事】nginx 安装及常用指令
[Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...
- docker基础——关于安装、常用指令以及镜像制作初体验
为什么使用docker docker就是一个轻量级的虚拟机,他解决的是服务迁移部署的时候环境配置问题.比如常见的web服务依赖于jdk.Tomcat.数据库等工具,迁移项目就需要在新的机器重新配置这些 ...
- 狂神说--docker学习笔记-docker安装,常用命令,以及使用
狂神说bilibili视频地址:https://www.bilibili.com/video/BV1og4y1q7M4?p=1 1. Docker概述 1.1 Docker为什么出现? 大家经常做一款 ...
- docker 安装与常用命令与常用容器(containers)环境
注意区别 container 与 image 的关系,container 的建立需要 image 的承载,也即 container 依赖 image,停止并删除了 container 并不会删除 im ...
- docker系列一 docker 安装和常用命令
安装Docker 在Ubuntu sudo apt-get update sudo apt-get install docker 执行sudo docker version,如果看到如下信息则表示安装 ...
- docker安装nginx,配置nginx,并成功访问
[Nginx那些事]系列 [Nginx那些事]nginx 安装及常用指令 [Nginx那些事]Nginx 配置文件说明 [Nginx那些事]nginx原理解析 [Nginx那些事]nginx配置实例( ...
- docker安装和操作
2. Docker安装启动 2.1运行安装环境 采用Linux操作系统,版本为:Centos7.0 64位 Docker采用CE版:18.06.0.ce-3 2.2 Docker安装过程 2.2.1 ...
- 【Docker学习笔记 二】Docker安装、运行流程与常用命令
上一篇Blog详细介绍了Docker为什么会出现,是为了解决什么问题而出现:Docker的基本组成部分.架构.本篇Blog就来详细了解下Docker如何安装.卸载以及常用的操作命令有哪些.因为Dock ...
- Docker——使用docker工具管理软件/组件的运行,镜像、容器、数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境
Docker--使用docker工具管理软件/组件的运行,镜像.容器.数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境 一.docker的安装和卸载 1.卸载 2.安装 3. 导 ...
最新文章
- 方法 - 查询到本周的日期
- iptables规则备份和恢复、firewall的zone的操作、service的操作
- 白话Elasticsearch56-数据建模之 Path Hierarchy Tokenizer 对文件系统进行数据建模以及文件搜索
- Postman界面了解
- Java中final和static对修饰类、方法、属性的总结
- 智力题:64匹马8个跑道,至少需要多少轮才能挑选出最快的4匹马
- 要想拿到字节50k*16薪,你还需要做什么?
- php stripslashes和addslashes的区别
- cs系统如何上云服务器,cs架构程序怎么连接云服务器
- 最新PHP编程零基础入门项目实战教程(完整)
- 计算机思维在化工方面的应用,化工类院校计算机基础教学中计算思维的培养
- 关于人像后期处理基础的相关技术步骤
- eclipse git 取远程代码_【JAVA】Eclipse中使用git进行pull远程代码
- linux防火墙reject,Iptables 扩展动作 Reject Mark
- Ubuntu下tar命令使用详解 .tar解压、.tar压缩
- 银河麒麟服务器操作系统V10SP2搭建FTP服务端
- 抖音二面:为什么模块循环依赖不会死循环?CommonJS和ES Module的处理不同?
- 心理测评系统软件使用问题二
- mysql8.0如何授权_MySQL8.0 创建用户及授权
- 汉字无法被计算机替代作文,雅思大作文范文:老师会被电脑替代吗
热门文章
- 央视春晚歌手王琪,和戏歌双绝吴广全在长春芝华仕会盟
- 工作学会9句话,升职加薪变股东
- Android【Retrofit(HTTP客户端),RxJAVA(响应式编程)】
- 百度地图查询周围建筑
- 点开计算机桌面选项怎么不见了,电脑桌面开始菜单不见了应该如何解决?_开始菜单不见了解决办法介绍...
- 如何查看电脑WIFI密码
- Thinkpad电脑安装ubuntu,遇到问题“Minimal BASH-like line editing is supported”
- 能温柔的时候,请别尖锐
- opencv读图的坐标系转换问题
- python怎么模拟鼠标移动点击_Python模拟鼠标点击——如何正确的肝阴阳师