Docker
大约 4 分钟
一、docker基本组成
镜像(image):
模版,用来创建容器
容器(container):
用容器来独立运行一个或者多个应用(可以理解为简单的linux)
仓库(repository):
存放镜像的地方,分为私有仓库和公有仓库 Docker Hub
二、docker安装
1、卸载旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、下载需要的安装包,并设置镜像仓库
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo #国外的地址
# 设置阿里云的Docker镜像仓库
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #国外的地址
3、安装docker
yum install docker-ce docker-ce-cli containerd.io
4、启动docker
systemctl start docker
# 查看当前版本号,是否启动成功
docker version
# 设置开机自启动
systemctl enable docker
5、下载hello world镜像测试
docker run hello-world
6、docker卸载
# 1. 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io
# 2. 删除资源 . /var/lib/docker是docker的默认工作路径
rm -rf /var/lib/docker
7、配置阿里云镜像加速

三、docker运行流程

四、docker常用命令
4.1、基础命令
1、查看docker的版本信息
docker version
2、查看docker的系统信息,镜像和容器的数量
docker info
3、帮助命令
docker 命令 --help
4.2、镜像命令
1、docker images
作用:
查看本机的所有镜像
解释:
REPOSITORY 镜像的仓库源
TAG 镜像的标签
IMAGE ID 镜像的ID
CREATED 镜像的创建时间
SIZE 镜像的大小
可选参数:
-a/ --all 列出所有镜像
-q/ --quiet 只显示镜像的id
2、docker search 镜像名
作用:搜索镜像
搜索收藏大于3000的镜像
docker search mysql --filter=STARS=3000
3、docker pull 镜像名[:tag]
作用:下载镜像
docker pull mysql 不写tag默认为latest
下载指定版本
docker pull mysql:5.7
4、docker rmi 镜像id
作用:删除镜像
1、删除指定镜像
docekr rmi -f 镜像id
2、删除多个镜像
docker rmi -f 镜像id 镜像id
3、删除全部镜像
docker rmi -f $(docker images -aq)
4.3、容器命令
1、运行容器
docker run [可选参数] image
#参数说明
--name="名字" 指定容器名字
-d 后台方式运行
-it 使用交互方式运行,进入容器查看内容
-p 指定容器的端口
(
-p ip:主机端口:容器端口 配置主机端口映射到容器端口
-p 主机端口:容器端口
-p 容器端口
)
-P 随机指定端口(大写的P)
2、运行并进入容器
docker run -it centos /bin/bash
3、退出容器
exit 停止并退出容器(后台方式运行则仅退出)
ctrl+p+q 不停止容器退出
4、列出容器
docker ps # 列出正在进行的容器
-a # 列出所有容器
-n=? # 列出最近创建的n个容器
-q # 只显示容器的编号
5、删除容器
docker rm 容器id # 强制删除rm -f
docker rm -f $(docker ps -aq) # 删除所有容器
6、启动和停止
docker start 容器id
docker restart 容器id
docker stop 容器id
docker kill 容器id # 强制停止当前容器
4.4、其他命令
1、日志查看
docker logs --help
可选项
Options:
--details 显示提供给日志的额外详细信息
-f, --follow 跟踪日志生成
--since string 显示时间戳从(e.g. 2013-01-02T13:23:37Z)以来的或者相对(e.g. 42m for 42 minutes)
-n, --tail string 从日志末尾开始显示的行数(默认为“全部”
-t, --timestamps 显示时间戳
--until string 在时间戳之前显示日志(e.g. 2013-01-02T13:23:37Z) or relative (e.g. 42m for 42 minutes)
常用:
docker logs -tf 容器id
显示时间戳,并跟踪实时日志输出
docker logs --tail number 容器id
number要显示的日志条数
2、查看容器中的进程信息
docker top 容器id
3、进入正在运行的容器
方法一:进入容器开启一个新的终端
docker exec -it 容器id /bin/bash
方法二:进入正在执行的终端,不会启动新的进程 docker attach 容器id
4、拷贝操作
#拷贝容器的文件到主机中
docker cp 容器id:容器内的路径 目的主机路径
#拷贝宿主机的文件到容器中
docker cp 主机路径 容器id:容器内的路径