一、Docker镜像相关命令
#查看本地镜像
docker images
#从远程仓库下载镜像
docker pull mysql:5.7
#搜索mysql5.7镜像
docker search mysql:5.7
#删除镜像
docker rmi mysql:5.7
#修改本地镜像名字
docker tag mysql:5.7 mysql:5.77777
#查看镜像的构建历史
docker history mysql:5.7
#commit命令将容器制作为镜像: docker commit 容器ID 镜像名称:镜像tag
docker commit 473j33 mysql:v1
#build命令构建镜像: docker build -t 镜像名称:镜像tag Docerfile路径
docker build -t mysql:v1 .
二、Docker容器相关命令
#查看本地正在运行的镜像
docker ps
#查看所有镜像
docker ps -a
#运行容器
docker run --name=mysql mysql:5.7 -it -d -p 8898:8080 -v /root:/root
#参数解释
-i:以交互模式运行容器(一般和 -t 配对使用)
-t:分配一个伪输入终端(一般和 -i 配对使用)
-d:后台运行(daemon的意思)
--name: 指定一个名称,不然会随机分配串字符串
-v:挂载文件夹到容器中 -v /root:/root 宿主机路径:容器路径。
-p:端口映射 -p 8080:8080 宿主端口:容器端口。
---privileged=true:启动特权模式,该模式容器内的root拥有真正的root权限。
#启动/重启/停止容器
docker start CONTAINER_ID / CONTAINER_NAME
docker restart CONTAINER_ID / CONTAINER_NAME
docker stop CONTAINER_ID / CONTAINER_NAME
#停止所有容器
docker stop $(docker ps -a -q)
#参数解释
-q:会返回容器的CONTAINER_ID
#删除容器
docker rm CONTAINER_ID / CONTAINER_NAME
#强制删除容器
docker rm -f CONTAINER_ID / CONTAINER_NAME
#查看容器的详细情况,如网络信息等
docker inspect CONTAINER_ID / CONTAINER_NAME
#进入容器内部
docker exec -it CONTAINER_ID /bin/bash
#从宿主机复制文件到容器中
docker cp /apps/docker.txt mysql:/apps/
#从宿主机复制文件到容器中
docker cp mysql:/apps/docker_copy.txt /apps
三、Dockerfile指令解释
FROM:基于某个镜像
MAINTAINER:作者
WORKDIR:指定工作目录,如果不存在会创建
COPY:复制文件到镜像中,源文件路径使用的是相对路径
ADD:同COPY,区别是,如果文件是压缩文件tar.gz会自动解压
ENV:指定环境变量,类似在linux中编辑/etc/profile的操作
EXPOSE:指定暴露的接口
RUN:构建镜像的时候执行指令,作用于镜像层
ENTRYPOINT:容器启动时执行执行,作用于容器层,如果多条ENTRYPOINT指令,只会执行最后一条
CMD:容器启动时执行执行,作用于容器层,如果多条ENTRYPOINT指令,只会执行最后一条
网友评论