docker常用命令
启动镜像
搞清楚-i -t -d 可以参考: https://www.jerrymei.cn/docker-run-interactive-tty-detach
# options: -d|-p|-v|-i|-t|--name# -d:在后台运行容器,并且打印容器id -p:指定端口 -v:挂载一个目录 --name: 指定名称# -i: 即使没有attached,也要保持 STDIN 打开状态 -t:分配一个伪TTY# -it:创建完成之后直接进度终端(exit之后容器退出)# -id:创建完成后以后台运行容器(配合/bin/bash一起使用,相当常驻一个可交互终端,所以docker不会退出)docker run $options $image:$tag $command $args# 例子 🌰# 启用容器,将容器命名为demo并进入容器docker run -it --name demo demo:latest /bin/bash # 将8080端口映射到容器80端口,并后台启动docker run -p 8080:80 -d demo:latest # 将当前目录下的conf目录映射到容器/etc/nginx/conf.d目录,并后台启动docker run -v ./conf:/etc/ngxin/conf.d -d demo:latest 进入已启动镜像
# options: -i|-t|-d (选项和run命令功能一致)docker exec $options $container $command $args# 例子 🌰# 进入demo容器,并进入一个bash进程docker exec -it demo /bin/bash 构建镜像
# options: -t# -t:指定镜像名字和tagdocker build $options $dockerfile# 例子 🌰# 将当前目录下的Dockerfile文件构建成镜像docker build -t demo:latest .导入导出
docker save -o $file_name.tar $image_name:$versiondocker load -i $file_name.tar# 例子 🌰docker save -o nextjs-docker.tar nextjs-docker:latestdocker load -i nextjs-docker.tar移除镜像
# 批量移除tag为<none>的镜像docker images -a | grep none | awk '{ print $3; }' | xargs docker rmi --forceDockerfile
# 基于指定镜像构建新的镜像FROM $image:$tag# 构建新镜像过程中需要执行的指令Run $command# 复制文件到容器Copy $local_file $container_file# 类似Copy,可以自动解压归档文件, 并且可以添加远程文件ADD $local_file $container_file # 声明容器运行时提供服务的端口,通过-P选项启动容器时,会自动映射EXPOSE $port# 可以被run命令的参数覆盖CMD [$command] # 不可以被run命令的参数覆盖,适合作为启动命令 ENTRYPOINT [$command] # 例子 🌰FROM centos:7RUN yum install -y epel-release \ && yum -y update \ && yum install -y nginxEXPOSE 80ENTRYPOINT ["nginx", "-g", "daemon off;"]