Edit

Docker入门命令

# 安装镜像
sudo docker pull ubuntu:12.04

# 镜像列表
sudo docker images
# 运行镜像
sudo docker run -t -i ubuntu:12.04 /bin/bash
# 运行镜像,如果这个镜像不存在,则直接从仓库中下载下来 然后退出用exit
sudo docker run -t -i training/sinatra /bin/bash

利用Dockerfile创建镜像

# 创建文件
mkdir sinatra
cd sinatra
touch Dockerfile

编辑 Dockerfile 文件


运行文件

sudo docker build -t="ouruser/sinatra:v2" .

ADD:复制本地文件到镜像

EXPOSE:像外部开放端口

CMD:描述容器启动后运行的程序 例如

1.# put my local web site in myApp folder to /var/www
2.ADD myApp /var/www
3.# expose httpd port
4.EXPOSE 80
5.# the command to run
6.CMD ["/usr/sbin/apachectl","-D","FOREGROUND"]

从本地文件系统导入

sudo cat ubuntu-14.04 |docker import -ubuntu:14.04

docker 相关命令

# 删除
sudo docker rmi training/sinatra
# 从导出的本地文件再导入到本地镜像库
sudo docker load --input ubuntu_14.04.tar

实战案例

FROM ubuntu:13.04
MAINTAINER examples@docker.com
RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN apt-get update
RUN apt-get upgrade -y
# 安装 ssh、apache 和 supervisor

RUN apt-get install -y openssh-server apache2 supervisor
RUN mkdir -p /var/run/sshd
RUN mkdir -p /var/log/supervisor
# 创建ssh和supervisor服务这个农场运行所需要的目录
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

# 添加supervisord配置文件,并复制配置文件到对应目录

EXPOSE 22 80
CMD ["/usr/bin/supervisord"]

# supervisor 配置文件的内容
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D
[program:apache2]
command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND"
# 启动supervisor容器
sudo docker run -p 22 -p 80 -t -i test/supervisords

%23%20Docker%u5165%u95E8%u547D%u4EE4%0A%0A%60%60%60%20bash%0A%23%20%u5B89%u88C5%u955C%u50CF%0Asudo%20docker%20pull%20ubuntu%3A12.04%0A%0A%23%20%u955C%u50CF%u5217%u8868%0Asudo%20docker%20images%0A%23%20%u8FD0%u884C%u955C%u50CF%0Asudo%20docker%20run%20-t%20-i%20ubuntu%3A12.04%20/bin/bash%0A%23%20%u8FD0%u884C%u955C%u50CF%uFF0C%u5982%u679C%u8FD9%u4E2A%u955C%u50CF%u4E0D%u5B58%u5728%uFF0C%u5219%u76F4%u63A5%u4ECE%u4ED3%u5E93%u4E2D%u4E0B%u8F7D%u4E0B%u6765%20%u7136%u540E%u9000%u51FA%u7528exit%0Asudo%20docker%20run%20-t%20-i%20training/sinatra%20/bin/bash%0A%20%20%20%20%0A%60%60%60%0A%0A%23%23%20%u5229%u7528Dockerfile%u521B%u5EFA%u955C%u50CF%0A%0A%0A%60%60%60%20bash%0A%23%20%u521B%u5EFA%u6587%u4EF6%0Amkdir%20sinatra%0Acd%20sinatra%0Atouch%20Dockerfile%0A%60%60%60%0A%23%23%23%23%u7F16%u8F91%20Dockerfile%20%u6587%u4EF6%0A%0A%60%60%60%20bash%0A%0A%60%60%60%0A%23%23%23%23%u8FD0%u884C%u6587%u4EF6%0A%0A%60%60%60%20bash%0Asudo%20docker%20build%20-t%3D%22ouruser/sinatra%3Av2%22%20.%0A%60%60%60%0A%0AADD%3A%u590D%u5236%u672C%u5730%u6587%u4EF6%u5230%u955C%u50CF%0AEXPOSE%uFF1A%u50CF%u5916%u90E8%u5F00%u653E%u7AEF%u53E3%0ACMD%uFF1A%u63CF%u8FF0%u5BB9%u5668%u542F%u52A8%u540E%u8FD0%u884C%u7684%u7A0B%u5E8F%20%u4F8B%u5982%0A%0A%60%60%60%20base%0A%23%20put%20my%20local%20web%20site%20in%20myApp%20folder%20to%20/var/www%0AADD%20myApp%20/var/www%0A%23%20expose%20httpd%20port%0AEXPOSE%2080%0A%23%20the%20command%20to%20run%20%0ACMD%20%5B%22/usr/sbin/apachectl%22%2C%22-D%22%2C%22FOREGROUND%22%5D%0A%60%60%60%0A%0A%0A%23%23%23%u4ECE%u672C%u5730%u6587%u4EF6%u7CFB%u7EDF%u5BFC%u5165%0A%0A%60%60%60%20bash%0Asudo%20cat%20ubuntu-14.04%20%7Cdocker%20import%20-ubuntu%3A14.04%0A%60%60%60%0A%0A%23%23%23docker%20%u76F8%u5173%u547D%u4EE4%0A%0A%60%60%60%20bash%0A%23%20%u5220%u9664%0Asudo%20docker%20rmi%20training/sinatra%0A%23%20%u4ECE%u5BFC%u51FA%u7684%u672C%u5730%u6587%u4EF6%u518D%u5BFC%u5165%u5230%u672C%u5730%u955C%u50CF%u5E93%0Asudo%20docker%20load%20--input%20ubuntu_14.04.tar%0A%60%60%60%0A%0A%23%23%23%23%u5B9E%u6218%u6848%u4F8B%0A%0A%60%60%60%20bash%0AFROM%20ubuntu%3A13.04%0AMAINTAINER%20examples@docker.com%0ARUN%20echo%20%22deb%20http%3A//archive.ubuntu.com/ubuntu%20precise%20main%20universe%22%20%3E%20/etc/apt/sources.list%0ARUN%20apt-get%20update%0ARUN%20apt-get%20upgrade%20-y%0A%23%20%u5B89%u88C5%20ssh%u3001apache%20%u548C%20supervisor%0A%0A%0ARUN%20apt-get%20install%20-y%20openssh-server%20apache2%20supervisor%0ARUN%20mkdir%20-p%20/var/run/sshd%0ARUN%20mkdir%20-p%20/var/log/supervisor%0A%23%20%u521B%u5EFAssh%u548Csupervisor%u670D%u52A1%u8FD9%u4E2A%u519C%u573A%u8FD0%u884C%u6240%u9700%u8981%u7684%u76EE%u5F55%0ACOPY%20supervisord.conf%20/etc/supervisor/conf.d/supervisord.conf%0A%0A%23%20%u6DFB%u52A0supervisord%u914D%u7F6E%u6587%u4EF6%uFF0C%u5E76%u590D%u5236%u914D%u7F6E%u6587%u4EF6%u5230%u5BF9%u5E94%u76EE%u5F55%0A%0AEXPOSE%2022%2080%0ACMD%20%5B%22/usr/bin/supervisord%22%5D%0A%0A%23%20supervisor%20%u914D%u7F6E%u6587%u4EF6%u7684%u5185%u5BB9%0A%5Bsupervisord%5D%0Anodaemon%3Dtrue%0A%5Bprogram%3Asshd%5D%0Acommand%3D/usr/sbin/sshd%20-D%0A%5Bprogram%3Aapache2%5D%0Acommand%3D/bin/bash%20-c%20%22source%20/etc/apache2/envvars%20%26%26%20exec%20/usr/sbin/apache2%20-DFOREGROUND%22%0A%60%60%60%0A%0A%60%60%60%20bash%0A%23%20%u542F%u52A8supervisor%u5BB9%u5668%0Asudo%20docker%20run%20-p%2022%20-p%2080%20-t%20-i%20test/supervisords%0A%60%60%60%0A%0A

Docker入门命令的更多相关文章

  1. docker 入门 命令

    docker 命令 docker images 镜像列表 docker ps 服务列表 docker 隐藏打包文件 .dockerignore .git node_modules npm-debug. ...

  2. Docker 入门 --- 命令总结

    Docker命令总结 前言 命令来自于官网的get-started教程,放在这里自用 part-1 ## List Docker CLI commands docker docker containe ...

  3. Docker入门命令备份

    1.安装Docker curl -sSL https://get.docker.com/ | sh 2.将当前用户加入Docker用户组,这样就不用每次执行docker 命令时加上sudo了 3.查看 ...

  4. Docker入门教程(六)另外的15个Docker命令

    Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...

  5. Docker入门教程(二)命令

    Docker入门教程(二)命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能. 在Docker ...

  6. Docker 入门指南——常用命令

    前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...

  7. Docker入门以及常用命令

    目的: Docker入门 Docker简介 Centos7安装Docker Docker HelloWorld运行原理解析 阿里云镜像仓库配置 Docker常用命令 Docker基本命令 Docker ...

  8. docker入门 基础命令 docker安装

    docker入门   在学一门新知识的时候,超哥喜欢提问,why?what?how? wiki资料 什么是docker Docker 最初是 dotCloud 公司创始人 Solomon Hykes ...

  9. docker入门资料及常用命令

      Docker17中文开发手册 :https://www.php.cn/manual/view/36147.html   Linux部署Docker及常用命令: https://www.cnblog ...

随机推荐

  1. Winform DataGridView扩展

    public class ObjectPropertyCompare<T> : IComparer<T> { private readonly PropertyDescript ...

  2. context--command buffer

    今天看了下 context ,因为要找怎么设置command buffer context为设备提供一些状态的设置和管理command buffer  & const buffer buffe ...

  3. c++new和new()区别(了解)

    我们在C++程序中经常看到两种new的使用方式:new A以及new A().那么这两种究竟有什么区别呢? 调用new分配的内存有时候会被初始化,而有时候不会,这依赖于A的类型是否是POD(Plain ...

  4. c3p0 --1

    # # This file is detritus from various testing attempts  # the values below may change, and often do ...

  5. this的使用、继承、super

    1.this的使用 1)可以用于区分局部变量 Person(int age,string name) { this.age=age; this.name=name; } 2)构造方法中,用this调用 ...

  6. NodeJS模块、包、NPM

    1.NodeJS模块        每一个Nodejs都是一个NodeJS模块,包括JS文件,JSON文本文件,二进制模块文件. a.模块的应用               新建一个文件mytest. ...

  7. LCA(最近公共祖先)离线算法Tarjan+并查集

    本文来自:http://www.cnblogs.com/Findxiaoxun/p/3428516.html 写得很好,一看就懂了. 在这里就复制了一份. LCA问题: 给出一棵有根树T,对于任意两个 ...

  8. iOS警告-Warning: Error creating LLDB target at path(模拟器警告)

    Warning: Error creating LLDB target at path '/Users/apple/Library/Developer/Xcode/DerivedData/Observ ...

  9. 10个免费开源的JS音乐播放器插件

    点这里 音乐播放器在网页设计中有时候会用到,比如一些时尚类.音乐或影视类等项目,但这些 网页播放器 插件比较少见,所以这里为大家整理一个集合,也许会有用到的时候. 下面整理的播放器有些是支持自适应的, ...

  10. Node 出现 uncaughtException 之后的优雅退出方案

    Node 的异步特性是它最大的魅力,但是在带来便利的同时也带来了不少麻烦和坑,错误捕获就是一个.由于 Node 的异步特性,导致我们无法使用 try/catch 来捕获回调函数中的异常,例如: try ...