前言
做一个docker的指令集合,方便自己和大家查询。
1.拉取镜像&建立容器
拉取镜像
docker pull your_image:version
创建容器
docker run -it --name your_container your_image:version /bin/bash
# -it 交互式操作
# --name 容器名字
# -v local_path:container_path 挂载本地目录到容器,可以多次使用
# --rm 当容器退出时自动删除容器
# --network=host 使容器使用主机的网络
# -w your_work_dir 指定容器的工作目录
# 在最后指定容器的启动命令,如果不指定则使用镜像的默认启动命令
2.查看镜像&容器
查看镜像
docker image ls
查看容器
# 运行容器
docker ps
# 所有容器(运行中和未运行)
docker ps -a
3.启动,进入,退出,停止
启动:
docker start your_container
进入:
# 两种方式
# Run a command in a running container 在一个正在运行的容器中执行命令
# 退出shell不会导致容器停止运行
docker exec -it your_container /bin/bash
# Attach local standard input, output, and error streams to a running container 将本地的标准输入,输出和错误流附加到正在运行的容器
# 如果退出容器的shell,容器会停止运行
docker attach your_container
退出
# 退出容器的shell
exit
停止:
docker stop your_container
4.容器导出,镜像导出,导入
这可能是一个比较常出现的场景,对于一个功能完整的容器,我们考虑将这个容器移植到其他的节点,我们先将其导出为镜像,再将镜像保存成一个压缩包,这个压缩包就可以进行传输了。在其他节点,将压缩包载入生成镜像就可以用了。
将容器导出为镜像:
docker commit your_container your_image:version
将镜像保存到本地:
docker save -o image.tar your_image:version
# image.tar为镜像导出后的压缩包,方便移动。
压缩包载入生成镜像
docker load -i image.tar
5.删除镜像&容器
删除镜像
docker rmi your_image:version
删除容器
docker rm your_container
结语
关于docker的思想(个人观点,可能不一定对,可能只适用于我的使用场景)。
最开始使用docker的时候,我会把docker理解成一个虚拟机,可以进入docker构建特定的环境,完成特定的操作。但是现在看来,docker更适合提供一个特定的与外部隔离的运行环境,我们将文件进行挂载,将网络端口进行映射,即可借助容器内的环境解决问题。