1 Docker容器没有示例的命令,将 container_name/image_name进行对应替换.
docker中有REPOSITORY, TAG, IMAGE,CONTAINER的概念
docker命令中的镜像名,容器名 支持使用Tab键进行联想
docker中默认的命令是对容器进行操作 ,现在看到容器相关的命令是默认没有container的。简单举例: docker run是docker container run的简写。
1.1 docker run 运行一个新的容器# 参数说明 ## 常用参数 -d # 后台运行容器,并返回容器ID -p # 指定端口映射,格式为:主机(宿主)端口:容器端口 --name # 为容器指定一个名称; -v # 绑定一个卷,映射本地实际路径 --volume -a stdin # 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项 --cpuset="0-2" 或 --cpuset="0,1,2" # 绑定容器到指定CPU运行 --dns 8.8.8.8 #指定容器使用的DNS服务器,默认和宿主一致 --dns-search example.com # 指定容器DNS搜索域名,默认和宿主一致 -e username="ritchie" # 设置环境变量 --env-file=[] # 从指定文件读入环境变量 --expose=[] # 开放一个端口或一组端口 -h "mars" # 指定容器的hostname -i # 以交互模式运行容器,通常与 -t 同时使用 --link=[] # 添加链接到另一个容器 -m # 设置容器使用内存最大值 --net="bridge" # 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型 -P # 随机端口映射,容器内部端口随机映射到主机的端口 # 大写P --rm # 容器退出后自动清理本容器,用于创建临时容器 -t # 为容器重新分配一个伪输入终端,通常与 -i 同时使用 # 示例 # 使用镜像nginx:latest以后台模式启动一个名为mynginx的容器,其中将容器外8080端口映射到容器内,主机目录 /data 映射到容器内/data docker run --name mynginx -d -p 8080:80 -v /data:/data nginx:latest docker run -it nginx:latest /bin/bash # 以交互式命令启动一个容器1.2 docker create 创建容器但不启动
参数命令同docker run
1.3 启动/停止/重启/杀掉容器docker start container_name # 启动一个停止状态的容器 docker stop contaniner_name # 停止 docker restart container_name # 重启 docker kill container_name docker kill -s container_name # -s 向即将杀掉的容器内发送一个信号1.4 删除容器
docker rm container_name1.5 进入容器
通过容器名或者容器ID进入指定的容器。
docker exec -it container_name docker exec -it container_id # 参数说明 -i # 即使没有附加也保持STDIN 打开 -t # 分配一个伪终端 -d # 采用在后台运行的分离模式, 我自己用的比较少 # 以交互的模式执行容器内为/home/start_nginx.sh的脚本 docker exec -it mynginx /bin/sh /home/start_nginx.sh1.6 查看容器运行状态
docker ps # 列出容器 docker ps -a # 列出所有容器(含未运行容器) # 参数说明 -f # 根据条件过滤显示的内容 --format # 指定返回值的模板文件 -l # 显示最近创建的容器 -n # 列出最近创建的n个容器 --no-trunc # 不截断输出 -q # 静默模式,只显示容器编号 -s # 显示总的文件大小 # 说明 docker ps命令执行后,显示的COMMAND列显示的是 启动容器时运行的命令2 镜像 2.1 本地镜像管理 2.1.1 加载本地镜像
docker load < ***.tar # 导入本地的docker镜像 docker load -i ***.tar docker load --input ***.tar2.1.2 保存镜像
docker save -o out_image.tar test/ubuntu:v3 docker save test/ubuntu:v3 > out_image.tar # 更多说明 docker save 保存的是镜像(image),docker export 保存的是容器(container); docker load 用来载入镜像包,docker import 用来载入容器包,但两者都会恢复为镜像; docker load 不能对载入的镜像重命名,而 docker import 可以为镜像指定新名称。2.1.3 查看本地镜像
docker images # 列出本地镜像 docker images test # 列出本地镜像中仓库repository为test的镜像 # 参数说明 -a # 列出本地所有的镜像 --digests # 显示镜像的摘要信息 -f # 显示满足条件的镜像 --format # 指定返回值的模板文件 --no-trunc # 显示完整的镜像信息 -q # 只显示镜像ID2.1.4 删除本地镜像
docker image rm image_name # 删除本地镜像 docker image rm -f image_name # 强制删除本地镜像 docker rmi image_name1 image_name2 # 删除多个本地镜像 docker rmi -f image_name1 image_name2 # 强制删除多个本地镜像 # docker pure命令 docker image pure # 删除所有未被 tag 标记和未被容器使用的镜像 docker image prune -a # 删除所有未被容器使用的镜像 docker container prune # 删除所有停止运行的容器2.1.5 创建镜像
docker build [OPTIONS] PATH | URL | - # 参数说明 --build-arg=[] # 设置镜像创建时的变量 --cpu-shares # 设置 cpu 使用权重 --cpu-period # 限制 CPU CFS周期 --cpu-quota # 限制 CPU CFS配额 --cpuset-cpus # 指定使用的CPU id --cpuset-mems # 指定使用的内存 id --disable-content-trust # 忽略校验,默认开启 -f # 指定要使用的Dockerfile路径 --force-rm # 设置镜像过程中删除中间容器 --isolation # 使用容器隔离技术 --label=[] # 设置镜像使用的元数据 -m # 设置内存最大值 --memory-swap # 设置Swap的最大值为内存+swap,"-1"表示不限swap --no-cache # 创建镜像的过程不使用缓存 --pull # 尝试去更新镜像的新版本 --quiet, -q # 安静模式,成功后只输出镜像 ID --rm # 设置镜像成功后删除中间容器 --shm-size # 设置/dev/shm的大小,默认值是64M --ulimit # Ulimit配置 --squash # 将 Dockerfile 中所有的操作压缩为一层 --tag, -t # 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签 --network # 默认 default。在构建期间设置RUN指令的网络模式 # 示例 docker build -t test/ubuntu:v1 . # 使用当前目录的 Dockerfile 创建镜像,标签为 test/ubuntu:v docker build github.com/creack/docker-firefox # 使用URL的 Dockerfile 创建镜像。2.2 远程镜像Docker Hub
远程镜像的概念可以参照git,区别在于git存储的是代码,远程镜像库存储的是docker镜像。
2.2.1 docker pulldocker pull java docker pull -a java # 下载REPOSITORY为java的所有镜像2.2.2 docker push
docker push mynginx:v1 # 上传本地镜像mynginx:v1到远程镜像库3 Docker版本信息
docker info # 显示docker详细信息 docker version # 显示docker版本信息
【参考】
1、Docker 命令大全
2、【官网】Use the Docker command line



