标签:docker
安装docker
yum install docker-io -y
安装内核模块
yum install kernel-devel
如果启动报错 就安装以下模块
yum upgrade device-mapper-libs
修改kernel内核
vi /usr/src/kernels/2.6.32-642.3.1.el6.x86_64/.config
添加修改CONFIG_DM_THIN_PROVISIONING=y
安装febootstrap
yum -y install febootstrap
使用febootstrap制作centos镜像
febootstrap -u http://mirrors.163.com/centos/6.8/updates/x86_64/ -i centos-release -i yum -i iputils -i bash -i wget -i tar -i which centos68 /mydata/docker/ http://mirrors.163.com/centos/6.8/os/x86_64/
febootstrap -i centos-release -i bash -i wget -i yum -i iputils -i iproute -i man -i vim-minimal -i openssh-server -i openssh-clients centos65 centos6-image http://mirrors.aliyun.com/centos/6/os/x86_64/
打包成docker镜像centos68-bash是名字
cd /mydata/docker/
tar -c .|docker import - centos68-bash
cd centos6-image && tar -c .|docker import - centos65-base
创建一个docker:
docker run -i -h="test" --name one -t centos /bin/bash
docker run -i -p 50080:80 -p 50022:22 --name one -v /mydata/python:/var -t centos68-bash /bin/bash
把容器和父镜像一起生成一个新的镜像
docker commit 5c437129b664 centos65-base:sshd
打包镜像
docker save centos65-base:sshd1 >/mydata/docker/save/centos65-base:sshd1.tar
导入镜像
docker load < centos65-base:sshd1.tar
后台启动 and 运行/root/run.sh
docker run -d -p 10080:80 -p 10022:22 -v /etc/yum.repos.d/:/etc/yum.repos.d/ --name three -t centos65-base:sshd /root/run.sh
进入容器:docker attach --sig-proxy=false one
停止所有的container,这样才能够删除其中的images:
docker stop $(docker ps -a -q)
如果想要删除所有container的话再加一个指令:
docker rm $(docker ps -a -q)
删除单个容器
docker rm d39b4b73764d
查看当前有些什么images
docker images
删除images,通过image的id来指定删除谁
docker rmi <image id>
想要删除untagged images,也就是那些id为<None>的image的话可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
要删除全部image的话
docker rmi $(docker images -q)
从container中拷贝文件,当container已经关闭后,在里面的文件还可以拷贝出来。
docker cp 8bb0e258aefb:/etc/hosts /tmp
把容器中的/etc/hosts拷贝到/tmp目录下
Usage: docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]
Run a command in a new container
-a=map[]: 附加标准输入、输出或者错误输出
-c=0: 共享CPU格式(相对重要)
-cidfile="": 将容器的ID标识写入文件
-d=false: 在后台运行容器,并且打印出容器ID
-e=[]:设置环境变量
-h="": 容器的主机名称
-i=false: 保持输入流开放即使没有附加输入流
-privileged=false: 给容器扩展的权限
-m="": 内存限制 (格式:<number><optional unit>, unit单位 = b, k, m or g)
-n=true: 允许镜像使用网络
-p=[]: 匹配镜像内的网络端口号
-rm=false:当容器退出时自动删除容器 (不能跟 -d一起使用)
-t=false: 分配一个伪造的终端输入
-u="": 用户名或者ID
-dns=[]: 自定义容器的DNS服务器
-v=[]: 创建一个挂载绑定:[host-dir]:[container-dir]:[rw|ro].如果容器目录丢失,docker会创建一个新的卷
-volumes-from="": 挂载容器所有的卷
-entrypoint="": 覆盖镜像设置默认的入口点
-w="": 工作目录内的容器
-lxc-conf=[]: 添加自定义-lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
-sig-proxy=true: 代理接收所有进程信号(even in non-tty mode)
-expose=[]: 让你主机没有开放的端口
-link="": 连接到另一个容器(name:alias)
-name="": 分配容器的名称,如果没有指定就会随机生成一个
-P=false: Publish all exposed ports to thehost interfaces 公布所有显示的端口主机接口
docker pull <镜像名:tag> #从官网拉取镜像
docker search <镜像名> #搜索在线可用镜像名
docker kill <容器名or ID> #杀掉某个容器
本文出自 “jiazheming” 博客,请务必保留此出处http://8888866666.blog.51cto.com/6988153/1834758
标签:docker
原文地址:http://8888866666.blog.51cto.com/6988153/1834758