信息查看
- docker info
- docker config
- docker version
登录登出
-
docker login
docker login -u ‘username’ -p ‘password’ url
执行完docker login后,会在/${home}/.docker/config.json文件中生成auth信息 -
docker logout
执行完成后,/${home}/.docker/config.json文件中的auth信息仍然存在
镜像
- 查看本地镜像
docker images - 查看镜像详细信息
docker inspect repository_name:tag - 拉取远程镜像
docker pull repository_name:tag - 推送本地镜像到远程仓库
docker push user_name/repository_name:tag
注意两点:1.需要先到官网注册并执行docker login2.本地镜像的repository需要带user_name - 删除本地镜像
docker rmi repository_name:tag[image_id] - 基于dockerfile构建镜像
docker build -t repository_name:tag docker_file_path - 在仓库中搜索镜像
docker search repository_name - 由当前容器生成镜像
docker commit -m="描述" -a="作者" container_id new_repository_name:tag - 复制镜像
docker tag image_id new_repository_name:new_tag- 如果new_repository_name:new_tag已存在,不会产生新的镜像
容器
- 启动容器
docker run --name container_name -p local_port:container_port -d image_name- –rm 停止容器时自动删除容器
- –name 指定容器名称
- -p 指定本地端口与容器内端口映射
- -P 随机一个宿主机端口与容器内端口映射
- -d 后台运行
- –volume “$PWD/”:/var 指定本地路径与容器内路径映射
- 启动容器并进入容器内示例
docker run -it tomcat:8.0.0 /bin/bash
- 查看所有容器
docker ps -a - 查看正在运行的容器
docker ps - 查看容器IP
docker inspect container_id - 启动一个已停止的容器
docker start container_id - 停止一个正在运行的容器
docker stop container_id - 重启一个已停止的容器
docker restart container_id - 进入正在运行的容器
docker exec -it container_id /bin/bash 或 docker exec -it container_id /bin/sh - 退出正在运行的容器
exit - 强制删除正在运行的容器
docker rm -f container_id - 删除已停止的容器
docker rm container_id - 删除所有停止的容器
docker container prune
DockerFile
用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。
- 上下文路径
该路径下存放需要发送给 docker 引擎构建镜像的文件。默认上下文路径就是 Dockerfile 所在的位置。 - FROM
指定基于哪个镜像 - MAINTAINER
指定镜像作者 - RUN
在docker build阶段执行,用于执行后面跟着的命令行命令。
exec格式:RUN [“可执行文件”, “参数1”, “参数2”]
shell格式:RUN <命令行命令> - ADD
从上下文目录中复制文件或者目录到容器里指定路径。压缩包会自动解压,url会自动下载。 - COPY
从上下文目录中复制文件或者目录到容器里指定路径。压缩包不会自动解压,url不会自动下载。推荐copy代替add。 - CMD
在docker run 时运行,为启动的容器指定默认要运行的程序,程序运行结束,容器也就结束。
如果存在多个 CMD 指令,仅最后一个生效。
可被 docker run 命令行参数中指定要运行的程序所覆盖。
CMD <shell 命令>
CMD ["<可执行文件或命令>","<param1>","<param2>",...]
CMD ["<param1>","<param2>",...] # 该写法是为 ENTRYPOINT 指令指定的程序提供默认参数
- ENTRYPOINT
类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,而且这些命令行参数会被当作参数送给 ENTRYPOINT 指令指定的程序。如果运行 docker run 时使用了 --entrypoint 选项,将覆盖 ENTRYPOINT 指令指定的程序。
ENTRYPOINT ["<executeable>","<param1>","<param2>",...]
-
LABEL
添加一些元数据(metadata),以键值对的形式。
可以用来代替MAINTAINER的使用 -
ENV
设置环境变量,在后续的指令中可以使用这个环境变量。 -
ARG
设置环境变量,仅对 Dockerfile有效,即只在docker build的过程中有效,构建好的镜像内不存在此环境变量。 -
EXPOSE
暴露容器内部端口,docker run -P 时,会自动随机映射该端口 -
VOLUME
定义匿名数据卷。在启动容器时忘记挂载数据卷,会自动挂载到匿名卷。
在执行docker run时,可以通过 -v 参数修改挂载点。 -
WORKDIR
切换到镜像中的指定路径,设置工作目录。
一般使用绝对路径,如果提供了相对路径,它将相对于前一个 WORKDIR 指令的路径 -
USER
切换后续命令执行的用户(用户和用户组必须提前创建好)。 -
如何在dockerfile阶段知道容器中的路径
-
如何在dockerfile阶段知道容器中的用户
-
entrypoint与cmd同时存在,docker run的执行过程是什么样
修改镜像服务器
在/etc/docker/daemon.json文件中添加如下内容
{
"registry-mirrors": [
"https://ustc-edu-cn.mirror.aliyuncs.com",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
也可以配置云服务的镜像加速器

重启docker systemctl restart docker
查看修改是否生效 docker info

本文详细介绍Docker的常用命令及其应用场景,包括镜像管理、容器操作、Dockerfile编写等,并提供了私有镜像仓库搭建的方法。
296

被折叠的 条评论
为什么被折叠?



