官网下载 docker
镜像操作
镜像加速
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
Perferences -> Docker Engine -> 将 https://y2vgkfz3.mirror.aliyuncs.com 加到"registry-mirrors"的数组里,然后点击 Apply & Restart。
镜像查看
docker images
查看本地仓库有哪些镜像。
下载镜像
docker pull 镜像名:版本号
搜索镜像
docker search 镜像名[:版本号]
删除镜像
docker image rm 镜像名
强制删除:
docker image rm -f
获取镜像 id
docker images -q
docker rmi -f $(docker images -q)
容器命令
将打包的 tar 文件导入到 docker 仓库
docker load -i 导入的 tar 镜像文件名
通过镜像运行容器
docker run 镜像id/镜像名
映射宿主机端口和容器端口
docker run -p 宿主机端口:容器端口
后台启动
docker run -d(后台运行)
指定名称启动
docker run --name 名称
查看运行的容器
docker ps
查看所有容器
docker ps -a
返回正在运行的容器 id
docker ps -q
开始、停止、重启容器
docker start 容器id/容器名
docker restart 容器id/容器名
docker stop 容器id/容器名 正常停止容器运行
docker kill 容器id/容器名 立即停止容器运行
删除容器
docker rm 容器名/容器id
查看容器内服务运行日志
docker logs 容器 id/容器名称 一闪而过
docker logs -f 容器 id/容器名称 实时查看
docker logs -t 容器 id/容器名称 加入时间戳
docker logs --tail n 容器 id/容器名称 查看容器尾部的n行
查看容器进程
docker top 容器 id/容器名称
进入容器
docker exec -it 容器id/容器名称 /bin/bash(终端应用)
复制文件
从操作系统到容器
docker cp 宿主机中的路径 容器id/容器名:容器下的资源路径
从容器到操作系统
docker cp 容器id/容器名:容器下的资源路径 宿主机中的路径
查看容器内部细节
docker inspect 容器id/容器名称
数据卷
实现宿主系统和容器间文件共享。
docker run -v 宿主机名目录:容器目录
将容器打包成新的镜像
docker commit -m "deploy" -a "an" 容器id 打包的镜像名:镜像版本
备份镜像
docker save 镜像名称:Tag -o 文件名.tar
Dockerfile
FROM
当前镜像是基于哪一个镜像,第一个指令必须是 FROM
FROM <images>
FROM <images>[:<tag>]
FROM <images>[@digest] 使用摘要
基于 Dockerfile 构建镜像
docker build -t mycentos:01 .
RUN
构建镜像时需要运行的指令。
FROM centos
RUN yum install -y vim
FROM centos
RUN ["yum","install","-y","vim"]
EXPOSE
用来指定构建的镜像在运行为容器时对外暴露的端口。
EXPOSE 80
WORKDIR
指定工作目录
WORKDIR /data
ADD
从上下文中拷贝文件到指定路径映像文件系统中
ADD home.txt /mydir/
COPY
从上下文中拷贝文件到指定路径映像文件系统中
COPY home.txt /mydir
COPY 可以下载 URL,ADD 不行
VOLUMN
定义可以挂载到宿主机器目录。
VOLUMN ["/data"]
ENV
设置环境变量。
ENV <key> <value>
ENV <key>=<value>
ENTRYPOINT
用来指定容器启动时的执行命令
ENTRYPOINT command param1 param2