基础知识
获取docker版本信息
docker version
获取docker详细信息
docker info
搜索镜像
docker search centos
docker search nginx
一般搜索镜像都在官方搜索:https://hub.docker.com/search?q=alpine&type=image
拉取一个镜像到本地,如本地已经,则不会重拉
docker pull alpine:latest
#拉取指定位置的镜像,如阿里云
docker pull xxx.com/alpine:latest
推送本地的镜像到镜像仓库
#前台运行一个docker容器
docker run -ti nginx:latest bash
#前后台运行一个docker容器
docker run -d centos:centos8.4.2105 bash
后台运行的容器执行完1-100输出后,直接退出,,状态为exited
#查看正在运行容器
docker ps
#查看所有容器
docker ps -a
#查看正在运行容器的id
docker ps -q
#查看正在运行容器的id
docker ps -qa
进入正在运行的容器中
docker exec -ti 7aa413168878 bash
docker exec -ti 7aa413168878 sh
kubectl exec -ti nginx-689dc9f579-kwnrk -- sh
docker run -ti -p 12345:80 nginx:latest
宿主机---->docker
docker---->宿主机
删除镜像
删除容器
查看镜像的修改记录
docker build -t ImageName:TagName dir
-t − 给镜像加一个Tag
ImageName − 给镜像起的名称
TagName − 给镜像的Tag名
Dir − Dockerfile所在目录
提交修改后的镜像
docker commit -a "zhaodaye" -m "add index.html" 04661cdce581 nginx:commit
docker run -ti nginx:latest bash
##exit退出容器,docker ps -a的exited中有此容器
docker run -ti --rm nginx:latest bash
#exit退出容器及删除,docker ps -a的exited中无此容器;
CMD和ENDRYPIONT必须要有一个;
CMD可以被覆盖,如果有ENTRYPOINT的话,CMD就是ENTRYPOINT的参数;
ENTRYPOINT----->COMMAND;CMD------>arg;
ADD:复制后解压;copy:复制不解压;
01 测试RUN命令
mkdir dockerfiles;
cd dockerfiles;
vim Dockerfile;
使用docker bulid命令生成镜像
docker build -t centos:user .
查看生成的镜像
运行镜像 :
docker run -ti --rm centos:user bash
---rm退出即删除
进入容器,查看run命令执行结果
02 测试CMD命令
docker build -t centos:cmd .
03 ENTRYPOINT命令测试
03-01测试
docker build -t centos:ep .
03-2测试
docker build -t centos:ep1 .
04 ENV测试
docker build -t centos:ep_env .
测试如下:
05 ADD命令测试
docker build -t centos:add .
05 COPY命令测试
docker run -ti --rm centos:copy bash
06 WORKDIR命令测试
docker build -t centos:workdir1 .
07 USER命令测试
docker build -t centos:user .
08 VOLOME命令测试
docker run -ti --rm centos:volume bash
docker run -ti -v /root/mysql_data/:/data centos:volume bash
一定不要使用centos镜像
建议使用:Alpine,busybox,scratch,Debian镜像,可以优化镜像大小
Glibc:优先使用node:slim python:slim
docker build -t alpine:workdir .
运行镜像
docker run -ti --rm alpine:workdir sh
使用多阶段构建:编译阶段和生成最终镜像的操作分开;多个FROM
docker build -t hello:single_bulidnew .
docker run -ti --rm hello:single_bulidnew
验证成功:
生成镜像
docker build -t hello:alpine .
scratch镜像:程序仅依赖静态库,不依赖动态库时考虑;
docker build -t hello:scratch .
docker build -t hello:scratch .
验证成功
常见命令参考:
https://docs.docker.com/engine/reference/commandline/version/
https://www.coonote.com/docker/docker-basic-command.html