docker的命令主要分为帮助命令,镜像命令,容器命令
Docker常用命令详解
【帮助命令】
[root@localhost ~] docker version # 显示docker的版本信息
[root@localhost ~] docker info # 显示docker的系统信息,包括镜像和容器的数量
[root@localhost ~] docker --help # 显示docker帮助信息
【镜像命令】
[root@localhost ~] docker [login | logout] [可选参数] # 登录或退出登录私有容器仓库
login 可选参数说明
--username=[镜像仓库登录名] # 指定登录账户,账户可在["https://hub.docker.com/"](docker仓库)创建
--password=[镜像仓库登录密码] # 指定登录密码,不建议在命令行指定密码
xxxx.xxx.com # 指定登录到某个容器仓库地址
[root@localhost ~] docker images # 显示docker已拉取的镜像
[root@localhost ~] docker search [镜像名称] # 查找镜像
[root@localhost ~] docker pull [镜像名称:版本] # 拉取镜像
[root@localhost ~] docker push [镜像名称:版本] # 将本地镜像上传到镜像仓库,首先要完成登录
[root@localhost ~] docker rmi [可选参数] [镜像id] # 删除镜像
rmi可选参数说明
-f # 强制删除
异常说明:Error response from daemon: conflict: unable to delete [镜像ID] (cannot be forced) - image has dependent child images,镜像存在从属关系,使用docker rmi [镜像名称:tag编号] 删除即可
异常说明:Error response from daemon: conflict: unable to delete [镜像ID] (cannot be forced) - image is being used by running container [容器ID],当前有容器正在使用此镜像,先将容器停止后在尝试删除即可
[root@localhost ~] docker commit [容器ID] [镜像名称]:[TAG] # 提交镜像
commit可选参数说明
-m "" # 提交说明
-a "" # 作者
[root@localhost ~] docker histroy [镜像ID | 镜像名称] # 查看镜像创建历史
[root@localhost ~] docker tag [镜像ID] [用户名]/[仓库名称,可以是不存在的仓库]:[自定义版本标识,与commit时定义的保持一致] # 给镜像添加版本标识
[root@localhost ~] docker build [镜像名称] [可选参数] # 构建本地镜像
build可选参数说明
--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指令的网络模式
【容器命令】
[root@localhost ~] docker run [可选参数] [镜像名称] # 创建一个容器并启动它
run可选参数说明
--name="name" # 设置容器名称
-d # 后台运行也可以理解为守护进程方式运行
-it # 使用交互方式运行,可以进入容器内查看内容
-p [宿主机端口]:[容器运行端口] # 指定容器运行端口,也可以映射主机端口[主机端口:容器占用端口],可以添加多个端口映射
-P # 随机指定端口
-v [宿主机目录]:[容器目录] # 目录映射关系,可以映射多个目录
--link [容器名称或ID]:[别名] # 连接另外一个容器,如nginx解析php文件时需要连接php的容器进行解释
[root@localhost ~] docker create [可选参数] [镜像名称] # 创建一个但不启动它,可选参数解释与run相同
[root@localhost ~] docker ps [可选参数] # 显示目前docker中正在运行的容器
ps可选参数说明
-a # 显示所有容器(默认显示正在运行)
-f # 过滤器过滤器根据提供的条件过滤输出
-n # 显示n个上次创建的容器(包括所有状态)(默认值-1)
# 显示最新创建的容器(包括所有状态)
-q # 仅显示容器ID
-s # 显示文件总大小
[root@localhost ~] docker port [容器ID] # 查看容器端口映射
[root@localhost ~] docker exec -it [容器ID] # 进入正在运行的容器
[root@localhost ~] docker [stop | start | restart] [容器ID] # 停止容器 | 启动容器 | 重启容器
[root@localhost ~] docker rm -f [容器ID] # 删除容器,不能删除正在运行的容器
[root@localhost ~] docker rm $(docker ps -a -q) # 删除所有容器
[root@localhost ~] docker kill [容器ID] # 强制关闭容器运行进程
[root@localhost ~] docker cp [主机文件路径] [容器ID:容器文件存储目录] # 拷贝文件至容器
[root@localhost ~] docker [pause | unpause] [容器ID] # 暂停及恢复容器内的所有进程
[root@localhost ~] docker top [容器ID或名称] # 查看当前容器内运行的进程
[root@localhost ~] docker logs [容器ID] [可选参数] # 获取容器内的日志
[root@localhost ~] docker rename [容器名称] [新的名称] # 重置容器名称
logs可选参数说明
-f # 跟踪日志输出
-t # 显示精确时间
--tail=10 # 显示最新的几条数据
--since="1970-01-01" # 显示某个开始时间的所有日志
【进阶命令】
[root@localhost ~] docker start $(docker ps -a | awk '{ print $1}' | tail -n +2) # 启动所有容器
[root@localhost ~] docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2) # 停止所有容器
[root@localhost ~] docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2) # 删除所有容器
[root@localhost ~] docker rmi $(docker p_w_picpaths | awk '{print $3}' |tail -n +2) # 删除所有的镜像