docker介绍
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移
植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚
拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
docker安装启动
1 yum install docker* 2 systemctl enable docker --now 设备开机自启并启动
docker配置加速
1 vim /etc/docker/daemon.json 2 写入以下内容 3 { 4 "registry-mirrors": [ 5 "https://registry.docker-cn.com", 6 "http://hub-mirror.c.163.com", 7 "https://docker.mirrors.ustc.edu.cn" 8 ] 9 }
docker镜像基本操作
docker拉取镜像
1 docker pull 名称[:tag] 2 [:tag] 是可选的 默认是最新版本 3 Using default tag: latest #如果不写tag 默认是latest 也就是最新版本 4 Trying to pull repository docker.io/library/mysql ... 5 latest: Pulling from docker.io/library/mysql
32c1bf40aba1: Pull complete # 这里是一层层下载也就是分层下载 docker images的核心 联合
6 3ac22f3a638d: Pull complete 7 b1e7273ed05e: Pull complete 8 20be45a0c6ab: Pull complete 9 410a229693ff: Pull complete 10 1ce71e3a9b88: Pull complete 11 c93c823af05b: Pull complete 12 c6752c4d09c7: Pull complete 13 d7f2cfe3efcb: Pull complete 14 916f32cb0394: Pull complete 15 0d62a5f9a14f: Pull complete 16 Digest: sha256:ce2ae3bd3e9f001435c4671cf073d1d5ae55d138b16927268474fc54ba09ed79 #签名信 息(也就是防伪标志) 17 Status: Downloaded newer image for 18
docker获取镜像列表
1 docker images 2 REPOSITORY:表示镜像的仓库的源 3 TAG:镜像的标签 4 IMAGE ID:镜像ID 5 CREATED:镜像创建时间 6 SIZE:镜像大小 7 -a 显示所有镜像 8 -q 只显示镜像id 9 -f 过滤条件
同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如 ubuntu 仓库源里,有
15.10、14.04 等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
docker搜索镜像
1 docker serach 镜像名 2 NAME: 镜像仓库源的名称 3 DESCRIPTION: 镜像的描述 4 OFFICIAL: 是否 docker 官方发布 5 stars: 类似 Github 里面的 star,表示点赞、喜欢的意思。 6 AUTOMATED: 自动构建。 7 -f 过滤条件
docker删除镜像
1 docker rmi 镜像名称/镜像id 2 如果镜像有容器启动了则删除会报错 3 如下图 4 如果想删除需要先停止容器 5 docker rmi 镜像id 镜像id 镜像id 删除多个容器6 docker rmi $(docker images -qa) #删除全部的容器 7 -f 是强制删除
docker更改镜像标签
1 docker tag 镜像id 更改的标签
docker save
docker save : 将指定镜像保存成 tar 归档文件。
1 docker save -o 保存的位置 镜像
docker load
docker load : 导入使用 docker save 命令导出的镜像。
1 docker load -i 镜像包
docker容器的基本操作
有了镜像才可以创建容器
docker新建容器并启动
1 docker run [可选参数] 镜像 2 --name='容器的名字' 用来区分容器 3 -d 后台运行 4 -it 使用交互方式运行 5 -p 指定容器的端口 -p 80:80 6 主机端口映射容器端口7 -P 随机指定端口 8 docker run -it -d -p 81:80 --name nginx 605c77e624dd 后台启动容器 9 docker run -it centos /bin/bash 启动并进入容器 10 exit 退出容器 #从容器中退出容器 11 上面命令退出并停止容器 想要退出不停止可以 12 Ctrl + P / Q 退出不停止容器 13 docker run -it --rm 一般用来测试用完就删
docker查看运行容器
1 dockers ps (只能查看运行的容器) 2 -a 查看所有容器(包括停止运行的) 3 -n=? 显示最近创建的容器 docker ps -a -n=1 4 -q 只显示容器的id 5 docker ps
docker停止容器
1 docker start 容器id 2 docker update --restart=容器名 #开启容器自动启动 3 docker start $(docker ps -qa) 启动所有容器
docker启动容器
1 docker start 容器id 2 docker update --restart=容器名 #开启容器自动启动 3 docker start $(docker ps -qa) 启动所有容器
docker删除容器
1 docker rm 容器id (删除前需要停止容器) 2 -f 强制 3 docker rm -f $(docker ps -qa) #删除强制所有容器 4 docker -qa | xargs rm -f 强制删除所有容器
docker重启容器
1 docker restart 容器id 重启容器 2 docker restart $(docker ps -qa) 重启所有容器
docker查看日志
1 docker logs 容器id 2 -f 追踪日志 3 -t 时间戳 4 --tail 行数
docker查看容器内部进程信息
1 docker top 容器id
docker查看容器 的原数据
1 docker inspect 容器id
docker进入容器
1 docker exec -it 容器id /bin/bash 进入容器 (开启一个新的终端) 2 docker attach 容器id 进入重启 (正在执行的终端)
docker容器内文件拷贝到主机
1 docker cp 容器id:容器内路径 目的主机路径
docker显示容器的资源使用情况
1 docker stats 镜像id 2 -a 全部容器使用的资源情况(包括没有运行的)(资源情况会实时更新) 3 --no-stream 展示当前容器使用的资源情况(资源情况不会实时更新)