美文网首页
Docker常用操作命令

Docker常用操作命令

作者: wuzsheng | 来源:发表于2018-09-16 16:33 被阅读12次

Docker 三大组件

仓库:存放各种各样已经打包好的Docker应用
镜像:按照Docker的规则制作的应用。类似操作系统iso,通过其完成各种应用的部署
容器:;利用镜像创建容器:启动预先定义好的进程与用户交互,对提 供服务。类似虚拟机本身(可以启动,停止,删除),一个镜像可以创建多个名字不同的容器。

容器

create

docker create 创建一个新容器..
docker create ubuntu:latest
用docker create 容器处于停止状态,需docker start +容器ID 启动

run

Docker run :创建一个新的容器并运行一个命令
是docker create 和 docker start 组合

-name 指定容器名字
-i让容器标准输入打开,通常与 -t 同时使用;
-t为容器重新分配一个伪输入终端
-it以交互式进入容器
-d 指定容器运行于前台还是后台
-p 指定容器暴露的端口
-e 指定环境变量
--env 从指定文件读入环境变量
--link添加链接到另一个容器

#启动centos里面的bash并且进行交互式操作
docker run -it centos /bin/bash

 #进入该容器
docker exec -it ID /bin/bash

#进入该容器,退出,容器会停止运行
docker attach +ID /bin/bash 


 #没有直接进入该界面,其在后台运行
docker run -itd centos /bin/bash

#-name给容器自定义名字
docker run -itd --name web centos:latest bash 

#--rm让容器退出后直接删除,(不能和-d使用)
docker run --rm -it centos bash -c "sleep 30" 

#镜像nginx:latest以后台模式启动一个容器,将容器的80端口映射到主机的80端口,主机的目录/data1映射到容器的/data
docker run -p 80:80 -v /data1:/data -d nginx:latest

attach/ exec

docker exec :进入容器内运行命令
-d :分离模式: 在后台运行
-i :即使没有附加也保持STDIN 打开
-t :分配一个伪终端

以root身份进入该容器,并启动一个bash,可以连续执行命令
docker exec -it 容器名/ID /bin/bash
exit 退出

docker attach进入后台运行容器
docker attach 容器名/ID
Ctrl + q退出,容器也会停止

attach与exec主要区别
attach直接进入容器启动命令的终端,不会启动新的进程.T退出容器会停止而exec不会
exec 在容器中打开新的终端,并且可以启动新的进程

rm

docker rm :删除一个或多少容器
-f :通过SIGKILL信号强制删除一个运行中的容器
-v :-v 删除与容器关联的卷

# 删除所有已经停止的容器
docker rm $(docker ps -qa)  

#批量删除所有退出容器
docker rm  $(docker -qa -f status=exited)   

#杀死所有正在运行的容器
docker kill $(docker ps -qa)   

ps

docker ps 列出容器正在运行显 = docker container ls
-a 显示所有的容器,包括未运行的
-q 显示容器 ID
--no-trunc:显示完整id号(128位)默认显示16位
-s 显示容器文件大小
-l 最近创建容器
通常使用
docker ps -qa

pause/unpause

让容器暂停工作且不占用CPU
暂停
docker pause +names
恢复
docker unpause +names

start/stop/restart/kill

docker start +names
docker stop +names
docker kill +names #快速终止
docker restart +names

#无论容器因何种原因退出,都立即重启  --restart=always
docker run -d -restart=always httpd

#如果启动进程退出代码非0,则重启容器,最多重启3次
docker run -d  --restart=on-failure:3  httpd

rename

docker rename 原容器名 新容器名

export/import

docker export导出容器,可以迁移到其他机器
docker import 将导入的文件。成为镜像

将容器生成文件
docker export container_id>file.tar
cat file.tar|docker import – wu #生成wu镜像

docker基本信息

显示 容器 详细信息
docker inspect 容器

获取容器的运行历史信息
docker logs +容器
-f 跟踪守护式容器的日志
-s 最新日志

eg:
docker run -d centos bash -c "while:;do ehco "123";sleep 1;done"
docker logs +ID #会显示123
可用docker stop ID 终止掉

docker top 容器进程
docker top + 容器
docker stats 容器占用系统资源情况
docker diff containerID
列出改动了容器的存储层
显示一个镜像的历史
docker version #查看版本
docker info //查看docker系统的信息

镜像

images

docker images : 列出本地镜像 或 docker image ls (--help)
-a 显示所有镜像
-q 只显示镜像ID
--no-trunc :显示完整的镜像信息

#列出镜像
docker images 

#显示具体镜像信息
docker images hello-world

#直接列出镜像包含镜像ID和仓库名
docker images --format "{{.ID}}: {{.Repository}}"

pull

docker pull : 从镜像仓库中拉取(下载)或者更新指定镜像
格式:docker pull [选项] [Docker Registry地址]<仓库名>:<标签>

#从docker hub拉取ubuntu镜像
docker pull ubuntu \\默认下载最新
docker pull Ubuntu:14.04 \\指定下载版本

#从私有库拉取ubuntu镜像
docker pull 192.168.200.11:5000/ubuntu/14.04.3.tar:latest

#3 从hub.c.163.com仓库拉取镜像
docker pull hub.c.163.com/library/mysql:latest
:latest 标记最新版本
本地镜像都保存在docker宿主机的/var/lib/docker目录下

push

docker push + name 上传镜像到仓库(默认上传到DockerHub官方仓库)

# 将本地镜像test:latest 添加新的标签user/test:latest
docker tag  test:latest  user/test:latest 
docker push user/test:latest

save/load

docker save:把现有镜像,导出一个文件
docker load:将该文件恢复本地镜像

#把现有镜像,导出一个文件
docker save -o aming-centos.tar aming/centos(现有镜像或ID都行)

#使用该文件恢复本地镜像
docker load < aming-centos.tar

commit

运行容器时,做的任何文件修改都会被记录于容器存储层里。且docker commit ,可以将容器的存储层保存下来成为镜像

增量的生成一个镜像。将容器保存为一个镜像(可标注镜像名和作者信息)当没有镜像名也成悬挂镜像

docker commit :从容器创建一个新的镜像。
格式:docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
-q 显示Image ID
--no-trunc 显示完整长度Image ID

步骤

  1. 运行容器
  2. 修改容器
  3. 将容器保存为新的镜像

运行ubuntu镜像,并进入交互模式
docker run –it centos –name wzs
yum –y install vim #在centos镜像中添加vim工具
docker ps #查看容器名
docker commit +容器名 +自定义名
docker images #查看镜像

#将容器保存为镜像
docker commit \
    --author "Tao Wang <twang2218@gmail.com>" \
    --message "修改了默认网页" \
    webserver \
nginx:v2
#或者
docker commit -a “wzs” -m “install httpd” +ID(写前几位就行) +新容器名字

相关文章

  • docker常用命令总结

    参考链接 Docker 常用命令与操作 docker常用命令总结——安装、镜像、容器基本操作

  • docker入门姿势(三)

    下面了解一下命令行操作docker吧Docker常用命令:(1) docker version(2) docker...

  • Docker命令及实战

    常用Docker命令 docker容器信息 镜像操作 镜像搜索 镜像下载 删除镜像 容器操作 提示:对于容器的操作...

  • 五、Spring Boot与Docker

    一、简介 二、Docker核心概念 三、Docker安装 四、Docker常用命令&操作 五、安装MySQL

  • docker常用命令

    一、 docker帮助命令 二、docker 镜像(images)常用命令 三、docker 容器常用命令

  • Docker常用操作命令

    Docker 三大组件 仓库:存放各种各样已经打包好的Docker应用镜像:按照Docker的规则制作的应用。类似...

  • docker常用操作命令

    一、镜像 1、拉取镜像 docker pull imagename 2、查看镜像 docker images 3、...

  • docker常用操作命令

    Dockerfile镜像定制 vim Dockerfile 创建定制文件,写入具体配置内容 docker buil...

  • Docker常用操作命令

    镜像操作 安装镜像 镜像仓库 Docker仓库[https://hub.docker.com/]版本号在tags中...

  • 记录一次Docker的学习

    Docker学习 Docker概述 Docker安装 Docker命令镜像命令容器命令操作命令... Docker...

网友评论

      本文标题:Docker常用操作命令

      本文链接:https://www.haomeiwen.com/subject/mclfnftx.html