镜像操作
Posted wanglun1101
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了镜像操作相关的知识,希望对你有一定的参考价值。
Docker提供两个版本,docker-ce(Community Edition: 社区版),ee(Enterprise Edition: 企业版),我使用的是社区版。
镜像的全名包括${registry}/${namespace}/${image_name}:${tag}
默认的镜像仓库是docker.io
- 查看本地镜像
docker images
-
查询镜像
docker search tomcat
, 一般情况下为了搜索比较详细的镜像信息,使用Dockerhub可以看到更多的细节 -
登陆仓库
docker login -u username -p password registrydomain
-
拉取镜像
docker pull alpine:3.6
-
推送镜像
docker push registry.fpi-inc.site/library/alpine:3.6
-
制作镜像
docker build -t registry.fpi-inc.site/library/test:test .
,需要有Dockerfile,后面再讲 -
修改镜像全名
docker tag alpine:3.6 registry.fpi-inc.site/fpi/alpine:3.6
-
保存镜像为物理文件
docker save -o alpine-3.6.image alpine:3.6
-
将物理镜像装载到本地
docker load < alpine:3.6
-
删除镜像
docker rmi alpine:3.6
容器操作
镜像启动之后会生成一个容器,这个容器通过--network指定的网络进行网络通信(默认为docker0),一个启动的容器可以看作为很迷你的虚拟机,有一个ip、与主机端口不会冲突,可以挂载主机的文件系统到容器,可以拷贝...
- 查看已启动的容器
docker ps
, -a 参数可以显示包括已停止的容器
- 启动一个镜像
docker run
docker run -d -p 80:80 --name nginx --restart always --network test --network-alias test-nginx -v /public/:/public/ -e TZ="Asia/Shanghai" nginx:1.5 nginx -g "daemon off;"
-d 指明在后台启动容器,如果不加,则启动后直接进入容器环境
-p 指定端口映射,将容器的端口映射为主机的端口,可以映射端口范围或者多个端口
--name 指定容器名称
--restart always说明容器出错会一直重启
--network指定使用的网络,不说明的话使用默认的网络
--network-alias指定容器的别名(相当于内部DNS解析,其他在相同网络内的容器可以通过别名访问这个容器)
-v 挂载主机的文件系统到容器
-e 设置容器的环境变量
--rm 容器退出自动删除
nginx:1.5 为镜像
nginx -g "daemon off;"是启动容器的命令,替换掉镜像的CMD命令,不写默认为镜像的CMD命令,如果镜像的启动命令是entrypoint,则无法使用
还有其他的参数和用法,可以docker run --help
查看帮助文档
-
停止一个容器
docker stop test-nginx
-
启动一个容器
docker start test-nginx
-
重启一个容器
docker restart test-nginx
-
删除一个容器
docker rm test-nginx
,如果正在运行,需要加参数-f -
文件拷贝
docker cp aaa.txt test-nginx:/tmp
,docker cp test-nginx:/tmp/aaa.txt .
-
进入容器环境
docker exec -it test-nginx sh
,退出执行exit
-
查看容器日志
docker logs test-nginx
以上是关于镜像操作的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段15——git命令操作一个完整流程
Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段