Docker容器技术出来很久了,使用的频率还是很高的,有些细节的东西容易遗忘,现在整理一下。
常用命令
# 在Docker Hub中查找镜像
docker search image-name
# 拉取镜像
docker pull ubuntu # 获取latest版本
docker pull ubuntu:18.04 # 获取指定版本(指定tag)
# 创建容器并交互式运行容器命令
# -d参数:表示后台运行
# -e参数:导入环境变量,eg:-e DISPLAY -e JAVA_HOME=/opt/jdk
docker run -it --name container-name -v local-fs:container-fs -p local-port:container-port image-name command
# eg: docker run -it --name ubuntu-bash -v /opt:/opt -p 8080:80 ubuntu:18.04 bash
# docker start/stop/restart container-name/id
# 在运行中的容器中打开交互式命令行
docker exec -it container-name/id bash
# 查看日志
# -f参数:表示交互式看日志
docker logs -f container-name/id
# 使用Dockerfile构建镜像
docker build -t image-name:tag .
Docker镜像打包和重新载入命令
# 打包
docker save -o package-name.tar image-name:tag
# 或
docker save image-name:tag >package-name.tar
# 载入
docker load <package-name.tar
容器镜像分析
# 查看image/container信息
docker [image] inspect image-name:tag
inspect命令用于查看镜像或容器的信息,包括启动容器时的一些映射参数。当你忘记创建容器时映射了那些数据时,可以通过inspect查看。
创建image时,如果想了解生成image的大小(commit次数多),可以用inspect查看RootFS.Layers参数,该参数对应该镜像的层级。