Docker常用命令

1.1 存储镜像

如果要导出镜像到本地文件,可以使用 docker save 命令。

docker save -o log_v140.tar docker.io/vmware/harbor-log:v1.4.0
docker save ID |gzip > 123.tgz(这个5+1)

执行完将docker.io/vmware/harbor-log:v1.4.0这个镜像保存于log_v140.tar这个文件中

1.2 导入镜像

若要将save指令保存的镜像文件导入,可以使用 docker load 从导出的本地文件中再导入到本地镜像库,例如

$ sudo docker load --input docker.io/vmware/harbor-log:v1.4.0

$ sudo docker load < docker.io/vmware/harbor-log:v1.4.0

这将导入镜像以及其相关的元数据信息(包括标签等)。

1.3 运行镜像

1) 后台运行镜像并映射80端口到宿主机的80端口

docker run -d -p 80:80 medicean/vulapps:b_bash_shellshock1

2) 运行镜像进行交互命令行(运行完命令退出后,容器会关闭)

docker run -it medicean/vulapps:t_thinkphp_1 /bin/bash

前面的宿主的端口,后面为虚拟机中端口

更多参数请自行查看docker run –h

1.4 文件交互

1) 宿主机向容器中发送文件   (rz)

docker cp  ~/test.txt    容器id:/var/www/html/

宿主机文件        容器路径

2) 容器向宿主机发送文件     (sz)

docker cp 容器id:/var/www/html/test.txt     /tmp/

容器内文件    宿主机路径

1.5 关闭容器

1) 停止容器,保存容器状态,docker start开始后内部状态不变,类似于虚拟机中的暂停

docker stop 容器ID

2) 终结容器,直接杀死当前容器,docker start开始后内部为全新状态

docker kill 容器ID

1.6 查看容器

docker ps 显示当前处于运行状态容器

docker ps –a 显示服务器内全部容器

docker ps –aq 显示全部容器且只显示容器ID

1.7 查看镜像

docker images 显示本机docker镜像

docker images –a 显示本机全部镜像,包含中间镜像(多重构建时常用)

docker images aq 显示全部镜像且只显示镜像ID

1.8 删除容器

docker rm 容器ID  删除处于关闭状态的容器

docker rm –f 容器ID 强制删除容器

docker rm $(docker ps -aq) 删除本机所有处于关闭状态的容器

1.9 删除镜像

docker rmi 镜像名[:标签]   删除未被用作构建容器的镜像

docker rmi –f 镜像名[:标签] 强制删除镜像

docker rmi $(docker images -aq) 删除本机所有未被使用镜像

1.10 提交容器

docker commit [–a 作者信息] 容器ID 镜像名

将容器保存为镜像

如:docker commit –a “rcsec”  a94…  wals.culb/library/XXX:…

将ID开头为a94的容器保存为名为wals.club/library/XXX:…的镜像

1.11 命名镜像

docker tag 镜像名[:标签] 镜像名[:标签]

将一个镜像命名为另一镜像名

1.12 进入运行容器

1) docker exec –it 容器ID 执行命令

如 docker exec –it 容器ID /bin/bash

阻塞当前容器运行命令并执行/bin/bash进入容器命令行

2) docker attach 容器ID

阻塞当前容器守护进程并执行默认终端

可以通过docker inspect 容器ID 在Entrypoint项中查看

运行attach命令即阻塞sh文件,可能会导致容器停止

1.13 登陆仓库

docker login 仓库地址

//登陆对应仓库,需要手动输入用户及密码

docker login –u 用户名 –p 密码 仓库地址

//指定用户名,密码登陆对应仓库

1.14 下拉镜像

docker pull 镜像名

//默认从dockerhub下载镜像

1.15 上传镜像

docker push 镜像名

//默认向Dockerhub上传镜像

1.16 构建镜像

在容器里新建start.sh

#!/bin/bash
chmod -R a+x /var/lib/mysql
service mysql start
service apache2 restart
service ssh restart
/usr/bin/tail -f /dev/null

在家目录新建Dockerfile

docker build –t 镜像名 [--no-cache=true]  Dockerfile文件绝对路径

常见命令说明:docker build –t php:5.5-apache-mysql –no-cache=true .

最后一个参数文件路径使用 . 含义为在当前目录下使用名字为Dockerfile的文件进行镜像构建。

常用阻塞进程:

/usr/bin/tail –f /dev/null 利用/dev/null黑洞特性 tail命令查询该文件致使进程阻塞

while true; do sleep 1; done ; 利用while true循环进行阻塞

Dockerfile书写详细说明:

https://docs.docker.com/engine/reference/builder/#predefined-args

八、docker的常用命令的更多相关文章

  1. Docker Kubernetes 常用命令

    Docker Kubernetes 常用命令 增 # 通过文件名或标准输入创建资源. kubectl create # 读取指定文件内容,进行创建.(配置文件可指定json,yaml文件). kube ...

  2. Docker(二十二)-Docker Swarm常用命令

    #查看集群节点 docker node ls #创建nginx服务 #docker pull hub.test.com:5000/almi/nginx:0.1 #下载私有仓库镜像 docker ser ...

  3. Dockerfile指令及docker的常用命令

    DockerfileFROM: FROM <image> FROM <image>:<tag> MAINTAINER: MAINTAINER <name> ...

  4. Docker Swarm常用命令

    #查看集群节点 docker node ls #创建nginx服务 #docker pull hub.test.com:5000/almi/nginx:0.1 #下载私有仓库镜像 docker ser ...

  5. Docker学习(三)认识Docker和常用命令

    Docker学习(三)认识Docker和常用命令 Docker体系结构 docker服务端,作为服务的提供方,核心进程 docker daemon,所有docker命令都是通过这个进程完成的 REST ...

  6. 【Docker入门】Docker的常用命令

    ​ ​ 了解和安装完docker之后,我们学习一下docker的常用命令就和当初学linux命令一样,放心命令其实大致相同只不过细节不同. 一.Docker启动类命令 1.启动docker:syste ...

  7. Docker之常用命令(二)

    这篇博客就不扯皮了,简单粗暴地贴上自己整理的一份Docker常用命令. docker search ** // 查找镜像 docker pull nginx // 载入镜像 # -a 拉取所有tagg ...

  8. Docker:常用命令大全 [七]

    一.docker的命令的解释 1.命令解释 docker run -d -p 80:80 nginx run (创建并运行一个容器) -d 放在后台 -p 端口映射 nginx docker镜像的名字 ...

  9. docker的常用命令汇总

    1================================================================================ docker 列出每个容器的IP   ...

随机推荐

  1. iOS NSDate 常用日期相关函数的封装

    Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系. NSDate+Category.h 代码: #import & ...

  2. IOS小技巧整理

    1 随机数的使用  头文件的引用         #import <time.h>        #import <mach/mach_time.h> srandom()的使用 ...

  3. 安装Pywin32后无法正常引用pyd文件

    1. 首先在官方下载pywin32 2.下载完成后,无法正常引用pyd文件 3.解决方案: python安装目录\Lib\site-packages\pywin32_system32\* 至 C:\W ...

  4. Azure 项目构建 – 构建和部署 .NET 应用程序

    本课程主要介绍了如何在 Azure 平台上快速构建和部署基于 .NET 语言的 Web 应用, 实践讲解如何使用 Azure 门户创建 Web 应用, 部署 ASP.NET 代码, 连接 Azure ...

  5. COGS 264. 数列操作

    时间限制:1 s   内存限制:160 MB [问题描述] 假设有一列数 {Ai }(1 ≤ i ≤ n) ,支持如下两种操作: (1)将 A k 的值加 D .( k, D 是输入的数) (2) 输 ...

  6. ABC3D创客项目:小风扇

    风扇是我们纳凉的好帮手,然而大多的风扇都体积庞大不易携带.利用电池进行供电能让风扇变得更加便捷,下面我们利用电池供电的原理制作出一个风扇. 工作原理: 这个OK风扇的主要能源来自于后面的7号电池,风扇 ...

  7. UVA 12563 Jin Ge jin Qu [h] ao 劲歌金曲 (01背包)

    每首只能唱一次,而且中间不能不唱歌,所以先把状态赋值为-1,以区别合法状态和非法状态,在唱歌曲目最多的条件下,离开时间应该尽量晚. 状态定义f[i][j]考虑前i首歌唱歌时间为j的最大唱歌曲目 #in ...

  8. Latex 分块矩阵的处理

    在 \(\mathrm{\LaTeX}\) 中,如果想输入类似的矩阵: 可以这样实现: \[ \left[ \begin{array}{cc|cc|c} \lambda & 0 & 1 ...

  9. Spring框架bean的注解管理方法之一 使用注解生成对象

    首先在原有的jar包: 需Spring压缩包中的四个核心JAR包 beans .context.core 和expression 下载地址: https://pan.baidu.com/s/1qXLH ...

  10. [JOYOI] 1035 棋盘覆盖

    题目限制 时间限制 内存限制 评测方式 题目来源 1000ms 131072KiB 标准比较器 Local 题目描述 给出一张nn(n<=100)的国际象棋棋盘,其中被删除了一些点,问可以使用多 ...