http://blog.csdn.net/pipisorry/article/details/50803028

Docker命令查询

终端运行docker命令,它会打印所有可用的命令列表及使用描述:# docker

查看命令具体参数及用法: # docker run --help

Docker环境查看

docker info

docker未运行时显示:FATA[0000] Get http:///var/run/docker.sock/v1.18/info: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

运行时显示:

Containers: 29

Images: 25

Storage Driver: aufs

 Root Dir: /var/lib/docker/aufs

 Backing Filesystem: <unknown>

 Dirs: 83

 Dirperm1 Supported: true

Execution Driver: native-0.2

Kernel Version: 4.2.0-35-generic

Operating System: Ubuntu 14.04.4 LTS

CPUs: 4

Total Memory: 7.621 GiB

Name: pika

ID: SQ73:OQIM:4OUF:W6BK:LW22:6DAL:7W5S:OTEC:PGYM:IJOW:H355:DUBR

WARNING: No swap limit support

校验Docker服务的状态

确保Docker服务是启动的

root@pika:/home/pi# service docker status

Note: 这个命令必须root执行,sudo都不行?

$sudo service docker restart

stop: Unknown job: docker

停止docker

#service docker stop

启动docker

#service docker start

把Docker安装为自启动服务

让它随服务器的启动而自动运行:

# update-rc.d docker defaults

Configure Docker to start on boot:

$ sudo systemctl enable docker

添加用户权限

如果不是root用户的的操作,可以添加一个用户到Docker用户组,这样操作Docker时无需使用sudo命令

root:/home/pi#gpasswd -a pi docker

正在将用户“pi”加入到“docker”组中

logout再login后,使用pi用户就可以运行docker命令了,否则会提示连接错误。

当然也可以创建一个docker用户组,避免使用root用户,并让docker用户组的用户具有同root的权限。

# usermod -aG docker ubuntu

Docker测试

docker run hello-world

Note: Docker注册服务器从Docker Hub获取到最新的Hello World镜像,下载到了本地。可以再次运行Hello World镜像。

如果本地有这个image就从它创建容器,否则从公有仓库下载。

皮皮blog

查看Docker可用镜像

Docker官方网站专门有一个网址来存储所有可用的镜像,你可以通过浏览这个网页来查找你想要使用的镜像(要注册登录)。

或者使用命令行的工具来检索:使用以下命令搜索CentOS的Docker容器

# docker search centos

Docker镜像下载

拉取一个镜像,即从Docker注册服务器的软件仓库下载一个Docker的镜像。

# docker pull ubuntu:14.04

# docker pull ubuntu

运行Docker容器:交互式进入新安装的虚拟机中

在Bash Shell下建立Ubuntu容器是非常简单的,只需运行一行命令即可。

-i选项:让输入输出都在标准控制台进行

-t选项:分配一个tty

root:/home/pi#docker run -it ubuntu bash    #或者/bin/bash

root@dce1a8276a18:/#

退出可以使用ctrl+d或者ctrl+c

或者ctrl+p + ctrl+q(这种可以退出到宿主机,而保持container仍然在运行,通过docker ps可以看出)

列出正在运行的容器docker ps

使用docker inspect命令我们可以查看更详细的关于某一个容器的信息。可以使用镜像id的前面部分,不需要完整的id。

列出所有的容器docker ps -a

(包括正在运行的容器和已经退出的容器)

列出本地(已下载的和本地创建的)镜像docker images

从镜像中运行一个新实例容器

# docker run

停止一个容器

# docker stop

重命名一个存在的容器

docker rename old_name new_name

Note: 不是image,是运行中的,也就是修改docker ps中的容器名

 从本地移除一个或多个指定的镜像docker rmi

docker rmi [options "o">] <image>  "o">[image...]   或者docker rmi image_id

-f 强行移除该镜像,即使其正被使用;

--no-prune 不移除该镜像的过程镜像,默认移除。

docker rmi nginx:latest postgres:latest python:latest

查看镜像的历史版本:

docker history (image_name)

将镜像推送到registry:

docker push (image_name)

从本地移除一个或多个指定的容器docker rm

docker rm [options "o">] <container>  "o">[container...]

docker rm nginx-01 nginx-02 db-01 db-02

sudo docker rm -l /webapp/redis

-f 强行移除该容器,即使其正在运行;

-l 移除容器间的网络连接,而非容器本身;

-v 移除与容器关联的空间。

Docker从主机上复制文件到docker images中

通过docker run命令的-v/--volume参数

#docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

ubuntu              14.04               c917d6497f55        7 weeks ago         188 MB

将本机目录/media/pika/softwares/Downloads/LinuxInstalls分享到Docker的/mnt 目录下

#docker run -v /media/pika/softwares/Downloads/LinuxInstalls:/mnt -it c917d6497f55 bash

root@f26f7d459863:/# ls /mnt

Firefox-latest-x86_64.tar.bz2        hadoop-2.6.4.tar.gz

desktop.ini                          jdk-8u91-linux-x64.tar.gz

eclipse-jee-mars-2-linux-gtk.tar.gz  pdfstudio

当然也可以通过dockerfile文件的ADD方法

[docker从主机上复制文件方法]

[如何在Docker容器内外互相拷贝数据?]

[另外的15个Docker命令]

皮皮blog

容器运行的一个 例子

以后台进程的方式运行hello
docker:sample_job=$(docker run -d ubuntu /bin/sh -c "while true; do echo Docker; sleep 1; done")

sample_job命令会隔一秒打印一次Docker,使用docker
logs可以查看输出的结果。如果没有给这个job起名字,那这个job就会被分配一个id,以后使用命令例如docker
logs查看日志就会变得比较麻烦。



运行docker logs命令来查看job的当前状态:docker logs $sample_job



所有Docker命令可以用以下命令查看:docker help



名为sample_job的容器,可以使用以下命令来停止:docker stop $sample_job



使用以下命令可以重新启动该容器:docker restart $sample_job



如果要完全移除容器,需要先将该容器停止,然后才能移除。像这样:

docker stop $sample_job

docker rm $sample_job



将容器的状态保存为镜像,使用以下命令:docker commit $sample_job job1



注意,镜像名称只能取字符[a-z]和数字[0-9]。

Docker常见软件安装

root@dc34d732b74d:/# apt-get update

#安装git

root@dc34d732b74d:/# apt-get install -y git

#安装make

root@dc34d732b74d:/# apt-get install -y make

#安装g++

root@dc34d732b74d:/# apt-get install -y g++

#安装ssh

root@dc34d732b74d:/# apt-get install -y ssh

root@dc34d732b74d:/# /etc/init.d/ssh start   #启动ssh

ssh后台容器长时间运行

不至于运行了几秒后容器会自动退出

docker run -d -p 22 -p 80:8080 python_ubuntu /usr/sbin/sshd -D

其中:

-d  表示使容器在后台运行

-p      指定端口设置,这里ubuntu容器内运行着的SSH Server占用22端口

-p 80:8080  表示端口的映射,映射主机端口到容器,方便外部访问容器内服务,主机端口80可以省略,省略表示把容器端口8080映射到一个动态端口。ubuntu将会以8080端口运行ssh,但对外(容器外)映射的端口为80。

/usr/sbin/sshd   表示启动ssh服务

-D     表示容器长时间运行,不至于几秒后退出

之后可以用docker ps命令查看容器是否成功运行,发现容器被随机赋予了一个****SSH连接端口号。

在主机用ssh命令来登录这个容器:

ssh root@127.0.0.1 -p ****

Note: 启动镜像实例的时候,指定了 -p 80:8080,容器开放8080端口,映射到宿主机端口就是80。知道宿主机IP地址,那就可以自由访问容器了。在宿主机上,通过curl测试一下即可:curl http://192.168.*.*。当然,你也可以使用浏览器访问啦。真实情况,可能不会让SSH直接对外开放80端口,一般都会位于nginx/apache或者防火墙的后面。

from: http://blog.csdn.net/pipisorry/article/details/50803028

ref:更多命令:Docker命令使用详解

Docker教程:dokcer的配置和命令的更多相关文章

  1. Jenkins服务使用 宿主机的docker、docker-compose (Jenkins 执行sudo命令时出现“sudo: no tty present and no askpass program specified”,以及 docker-compose command not found解决办法)

    若要转载本文,请务必声明出处:https://www.cnblogs.com/zhongyuanzhao000/p/11681474.html 原因: 本人最近正在尝试CI/CD,所以就使用了 Jen ...

  2. Docker教程:docker machine的配置和命令

    http://blog.csdn.net/pipisorry/article/details/50921335 安装virtualbox 如果要使用virtualbox,首先要安装virtualbox ...

  3. Docker教程:使用docker配置python开发环境

    http://blog.csdn.net/pipisorry/article/details/50808034 Docker的安装和配置 [Docker教程:docker的安装] [Docker教程: ...

  4. Docker教程:dokcer machine的概念和安装

    http://blog.csdn.net/pipisorry/article/details/50920982 Docker machine介绍 做为Docker容器集群管理三剑客之一的Docker ...

  5. docker 使用教程(2)常用命令

    1. 查看docker信息(version.info) # 查看docker版本$docker version # 显示docker系统的信息$docker info 2. 对image的操作(sea ...

  6. Docker教程:docker的概念及安装

    http://blog.csdn.net/pipisorry/article/details/50754385 Why docker 对于运维来说,Docker提供了一种可移植的标准化部署过程,使得规 ...

  7. Docker容器的基本了解和命令

    一.docker和虚拟机的对比 特性 容器 虚拟机 启动 秒级 分钟级 硬盘使用 一般为MB 一般为GB 性能 接近原生 弱于 系统支持量 单机支持上千个容器 一般几十个 更高效的利用系统资源 更快速 ...

  8. Docker的安装,配置,更新和卸载

    我们可以在Linux中安装Docker并运行Hello world应用程序.通过下面这些操作,我们将会学到更多有关于Docker的基础特征.我们将会学到如何: 安装Docker引擎 在一个容器中运行软 ...

  9. docker教程之从一头雾水到不一头雾水(2)

    书接上文:docker教程之从一头雾水到不一头雾水(1) 运行镜像 先查看下本地有哪些镜像 [root@ichz ~]# docker images REPOSITORY TAG IMAGE ID C ...

随机推荐

  1. Gethub readme 撰写

    大标题=== 小标题----- #一级标题 ##二级标题 ###三级标题 ####四级标题 #####五级标题 ######六级标题 插入圆点* 昵称:果冻虾仁 * 别名:隔壁老王 * 英文名:Jel ...

  2. js求和运算在可变参数的情况下ES3、ES5和ES6的写法区别

    //ES3.ES5的写法 function foo(){ var arr = Array.prototype.slice.call(arguments); var sum = 0; arr.forEa ...

  3. jsp根据参数默认选中radio

    <% int vol = (Integer)request.getAttribute("cardtype") ; %> <input type="rad ...

  4. Jvm原理剖析与调优之内存结构

    一些不得不说的概念 JVM JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java虚拟机包括一套字节码指令集.一组寄存器.一个栈.一个 ...

  5. Web API对application/json内容类型的CORS支持

    假设有一简单架构分为前后两部分,其一是Angular构成的前端页面站点,另一个则是通过ASP.NET Web API搭建的后端服务站点.两个站点因为分别布署,所有会有CORS(Cross-Origin ...

  6. ACM FatMouse' Trade

    FatMouse prepared M pounds of cat food, ready to trade with the cats guarding the warehouse containi ...

  7. PHP 实例 - AJAX 实时搜索

    AJAX Live Search 在下面的实例中,我们将演示一个实时的搜索,在您键入数据的同时即可得到搜索结果. 实时的搜索与传统的搜索相比,具有很多优势: 当键入数据时,就会显示出匹配的结果 当继续 ...

  8. 0426html常用标签属性

    一.基础语法 标签:作为网页的最小单元 1.双标签 内容的容器 2.单标签 控制性内容 注释    每一个模块都要写清楚注释 二.基本结构 <!DOCTYPE html>          ...

  9. AC的故事大结局山寨版(下)(最大流)

    福建工程学院第十二届ACM程序设计大赛真题 AC的故事大结局山寨版(下) TimeLimit:2000MS  MemoryLimit:128MB 64-bit integer IO format:%l ...

  10. Rails多路径调用相同方法原路返回的方法

    有时候可能有多条path到达同一个method,此时,我们希望在该方法完成后自动转到之前进入的path中去,其实实现起来非常简单,只需要实现如下两个方法: def redirect_back_or(d ...