docker平台的基本使用方法
一、镜像命令
- 搜索镜像
docker search ubuntu #从docker hub中搜索docker名为ubuntu的镜像
name:代表此镜像的名称
description:此镜像的描述
stars:下载次数
official:是否由官方提供(官方提供可放心下载,可以基于此镜像做自己的镜像)
- 拉取镜像
docker pull== ,默认是拉去docker hub上搜索到的最新版本(第一个)。
docker pull centos
使用阿里云docker镜像加速器
地址:https://cr.console.aliyun.com的控制台,使用支付宝账号登录,左侧加速器帮助页面会为你显示独立的加速地址,这个加速地址每个人的都不同。
可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器。
把自己的专属加速地址放到下面的地址改一下,写入文件就可以了。
{
"registry-mirrors": ["https://eu5rxjvf.mirror.aliyuncs.com"]
}
systemctl daemon-reload #启动配置
systemctl restart docker #重启docker服务
- 常用镜像命令
docker version #显示docker详细信息
docker info #显示docker的系统信息,包括镜像和容器的数量
docker --help #docker帮助命令手册
docker images #查看所有本地主机的镜像
docker search 镜像名 #搜索镜像
docker pull 镜像名 [标签] #下载镜像(如果不写tag,默认是latest)
docker rmi 镜像名 [标签] #删除镜像 docker rmi -f $(docker images -aq) 删除全部镜像
docker tag 镜像名:版本 新镜像名:版本 #复制镜像并且修改名称
#从运行的容器中导出镜像
docker commit <Container ID/NAMES> <REPOSITORY>:tag
docker load -i /xxx/xxx.tar #导入镜像
docker save -o /xxx/xxx.tar <REPOSITORY>:tag #保存一个镜像为一个tar包
二、容器命令
docker run [可选参数] image 命令 #启动容器(无镜像会先下载镜像)
# 举例
docker run -it --name <Container names> -p 127.0.0.1:26888:5000/tcp <images>:tag #使用 TCP 协议进行端口映射
#参数说明
--name = "Name" 容器名字
-c 后面跟待完成的命令
-d 以后台方式运行并且返回ID,启动守护进程式容器
-i 使用交互方式运行容器,通常与t同时使用
-t 为容器重新分配一个伪输入终端。也即启动交互式容器
-p 指定容器端口 -p 容器端口:物理机端口 映射端口
docker build #创建镜像 -f:指定dockerfile文件路径 -t:镜像名字以及标签
docker logs 容器实例的ID #查看容器日志
docker rename 旧名字 新名字 # 给容器重新命名
docker top 容器实例的ID #查看容器内进程
docker ps -a #列出所有容器(不加-a就是在运行的)
docker rm 容器实例的ID #删除容器(正在运行容器不能删除,除非加-f选项)
docker kill 容器实例的ID #杀掉容器
docker history 镜像的ID #查看docker镜像的变更历史
docker start 容器实例的ID #启动容器
docker restart 容器实例的ID #重启容器
docker stop 容器实例的ID #停止正在运行的容器
docker attach /docker exec 容器实例的ID #同为进入容器命令,不同的是attach连接终止会让容器退出后台运行,而exec不会。并且,docker attach是进入正在执行的终端,不会请动新的进程,而docker exec则会开启一个新的终端,可以在里面操作。
# 举例
docker exec -it <容器实例的ID> /bin/bash
docker image inspect 容器名称:容器标签 #查看容器内源数据
docker cp 容器id:容器内路径 目的主机路径 #从容器内拷贝文件到主机(常用)或者从主机拷贝到容器(一般用挂载)
exit #直接退出容器
crlt + P + Q #退出容器但是不终止运行
pip list # 查看安装包
三、Dockerfile
- Dockerfile指令选项。
Dockerfile 指令选项:
FROM #基础镜像 。 (centos)
RUN #镜像构建的时候需要执行的命令。
CMD #类似于 RUN 指令,用于运行程序(只有最后一个会生效,可被替代)
EXPOSE #对外开放的端口。
ENV #设置环境变量,定义了环境变量,那么在后续的指令中,就可以使用这个环境变量。
ADD # 步骤:tomcat镜像,这个tomcat压缩包。添加内容。
COPY #复制指令,将文件拷贝到镜像中。
VOLUME #设置卷,挂载的主机目录。
USER #用于指定执行后续命令的用户和用户组,这边只是切换后续命令执行的用户(用户和用户组必须提前已经存在)。
WORKDIR #工作目录(类似CD命令)。
ENTRYPOINT #类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,会追加命令。
ONBUILD #当构建一个被继承Dokcerfile,就会运行ONBUILD的指令。出发执行。
注意:CMD类似于 RUN 指令,用于运行程序,但二者运行的时间点不同:
CMD 在docker run 时运行。
RUN 是在 docker build。
作用:为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。
CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖。
如果 Dockerfile 中如果存在多个 CMD 指令,仅最后一个生效。