Docker是基于Go语言实现的云开源项目。
目录
Docker概述
CentOS7安装Docker
卸载
Docker常用命令
容器命令
Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及 其运行环境能够做到“一次镜像,处处运行”。
将应用打包成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统 上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。
确定版本
#确定Linux版本是CentOS7及以上版本(且当前为root用户)
cat /etc/redhat-release
#结果如下
CentOS Linux release 7.9.2009 (Core)#小版本号不必一致
卸载旧版本
#若曾经安装过,则先卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
yum安装gcc
#在执行以下步骤前,先确保centos可以连接外网
#yum安装gcc相关
yum -y install gcc
yum -y install gcc-c++
安装相关软件包
#安装需要的相关软件包
yum install -y yum-utils
镜像加速
#设置stable镜像仓库(相当于国内镜像加速)
yum-config-manager --add-repo http://mirrors.aliyun.com/dockerce/linux/centos/docker-ce.repo
更新yum索引
#更新yum软件包索引
yum makecache fast
安装DOCKER CE
#安装DOCKER CE
yum -y install docker-ce docker-ce-cli containerd.io
启动Docker
#启动docker
systemctl start docker
测试
#查看版本
docker version
#运行 hello-world 样例测试
docker run hello-world
#停止服务
systemctl stop docker
#卸载docker及相关软件
yum remove docker-ce docker-ce-cli containerd.io
#删除残余文件
rm -rf /var/lib/docker
#删除本地已存在的容器文件夹
rm -rf /var/lib/containerd
帮助启动类命令
启动docker: systemctl start docker
停止docker: systemctl stop docker
重启docker: systemctl restart docker
查看docker状态: systemctl status docker
开机启动: systemctl enable docker
查看docker概要信息: docker info
查看docker总体帮助文档: docker --help
查看docker命令帮助文档: docker 具体命令 --help
镜像命令
列出本地主机上的镜像:
#docker images [options]:
#列出现有的镜像
docker images
#-a :列出所有本地镜像,(含历史映像层);
docker images -a
#-q :只显示镜像ID(IMAGE ID)
docker images -q
#也可联动使用
docker images -aq 或 docker images -qa
各个选项说明:
REPOSITORY | TAG | IMAGE ID | CREATED | SIZE |
---|---|---|---|---|
表示镜像的仓库源 | 镜像的标签版本号 | 镜像ID | 镜像创建时间 | 镜像大小 |
PS:同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用REPOSITORY:TAG 来 定义不同的镜像。如果不指定的话,docker默认使用最新版本镜像,例如需要ubuntu,则会使用: ubuntu:latest镜像。
查找所需镜像
#docker search [options] 镜像名称:
#以查找centos为例
docker search centos #将会在 https://hub.docker.com 寻找centos镜像
#--limit N:只列出N个镜像,默认25个
docker search --limit 5 centos #只列出5个与centos相关的镜像
NAME | DESCRIPTION | STARS | OFFICIAL | AUTOMATED |
---|---|---|---|---|
镜像名称 | 镜像说明 | 点赞数量 | 是否是官方的 | 是否是自动创建的 |
下载镜像
#docker pull 镜像名称[:TAG]:
#以下载centos为例
docker pull centos #没有TAG就是下载最新版
查看各部分所占空间
#docker system df:
docker system df #查看镜像/容器/数据卷所占空间
删除镜像
#docker rmi [-f] 镜像名字ID:
#-f 为强制删除
docker rmi -f 镜像ID #删除单个
docker rmi -f 镜像名1:TAG 镜像名2:TAG #删除多个
docker rmi -f $(docker images -qa) #删除全部
#以删除centos为例:
docker rmi -f centos:7 centos:latest
新建+启动命令
#docker run [options] IMAGE [COMMAND] [ARG...]
--name="容器新名字" :为容器指定一个名称
#启动守护式容器(后台运行):
-d: 后台运行容器并返回容器ID;
#启动交互式容器(前台有伪终端,等待交互);
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;也即
#端口指定
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p