Docker折腾笔记

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖环境到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。

一、安装

1、安装准备 up kernel to 3.8

rpm --import
https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

or

yum install epel-release

rpm -Uvh
http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

yum --enablerepo=elrepo-kernel install kernel-ml -y

http://elrepo.org/tiki/tiki-index.php:

sed -n ‘/default/c default=1‘ /boot/grub/grub.conf #以新内核启动

reboot

2、安装docker

yum install docker-io device-mapper-event-libs -y

service docker start #启动服务

chkconfig docker on

排错信息:

docker -d

INFO[0000] +job serveapi(unix:///var/run/docker.sock)

INFO[0000] WARNING: You are running linux kernel version 2.6.32-431.el6.x86_64, which might be unstable running docker. Please upgrade your kernel to 3.8.0.

docker: relocation error: docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmapper.so.1.02 with link time reference

二、常用命令选项

Usage: docker [OPTIONS] COMMAND [arg...]

docker search ubuntu #搜索镜像

docker pull ubuntu #获取镜像 (默认为lastest)

docker pull centos:6.6 #获取指定镜像tag

docker [-v]|version #版本信息

docker images #列出本地镜像

docker ps #查看容器信息

docker stats 18534ae7fbbc #容器运行状态

docker stop 0185e1cb9466 #终止指定容器

docker logs -f web-15 #查看指定容器log

docker rm 18534ae7fbbc #删除容器

docker rmi ubuntu #删除镜像

docker inspect 18534ae7fbbc |grep ‘"Pid"‘ #查看容器Pid

docker inspect 18534ae7fbbc |grep ‘"IPAddress":‘ #查看容器IP

docker inspect 18534ae7fbbc |grep ‘"Gateway":‘ #查看容器网关

docker rm $(docker ps -a |grep -v ‘Up‘ |cut -d " " -f1) #删除所有未启动的容器

docker rm $(docker ps -a -q) #删除所有容器

三、启动容器的两种方式

1、一种是基于镜像新建一个容器并启动

docker run -it ubuntu +命令 #执行完就退出

docker run -it ubuntu "ps"

docker run -it ubuntu /bin/bash #启动一个容器的bash,-t分配伪终端、-i打开输入

docker run --help

man docker-run

docker run -dit --name Web01 ubuntu:14.04 /bin/bash #-d 后台运行

2、一种是用start选项启动终止状态的容器

docker start web-01

四、连接(进入)容器
:(attach,不推荐)

1、attach (自带选项, 不推荐)

docker attach web-01

2、nsenter (进入命名空间,推荐)

yum install util-linux -y #安装nsenter所属软件包

docker ps #查看已启动容器

docker inspect --format "{{.State.Pid}}" 容器ID|容器名 #获取容器PID

nsenter -t 9724 -m -u -i -n -p -r -w #进入容器

hostname Web01-3797 #给容器主机名加入PID,方便下次进入

3、SSH

docker run -t -i -c 100 -m 256MB -h Web-19 -p 2220:22 --restart="always" --name="web-19" centos:6.6 /bin/bash #之后自动进入容器bash

yum -y install openssh-server openssh-clients #安装SSH

chkconfig sshd on

service sshd start

ifconfig #查看容器IP

passwd root #修改root密码

ssh [email protected]容器IP -p2220

docker commit web-16 centos/sshd #容器保存为镜像,方便下次调用

五、导出导入
:

1、容器

docker export 18534ae7fbbc > /opt/docker/ubuntu.tar #导出容器

cat /opt/docker/ubuntu.tar |docker import - test/ubuntu:v1.0 #导入容器

2、镜像

docker save -o ubuntu_14.04.tar ubuntu:14.04 #导出镜像

docker load --input ubuntu_14.04.tar #载入镜像

六、端口映射

docker run --help

docker run -tid -c 100 -m 512MB -h Web-14 -p 192.168.18.10:80:80 --name="web-14" centos:6.6 /bin/bash #绑定指定IP端口

docker run -tid -c 100 -m 512MB -h Web-15 -p 80:80 --name="web-15" centos:6.6 /bin/bash #绑定全部IP端口

docker run -tid -c 100 -m 256MB -h Web-16 -p 2222:22 --restart="always" --name="web-16" centos:6.6 /bin/bash #自启动,绑定SSH端口

docker run -tid -c 100 -m 512MB -h Web-117 -p 800:80 --name="web-117" centos:6.6 /bin/bash #绑定全部IP端口

七、创建和挂载本地数据卷

1、创建:

docker run -dit --name Web12 -v /webapp centos:6.6 /bin/bash

docker run -dit --name Web02 -v /webapp centos:6.6 /bin/bash

docker run -dit --name Web05 -v /webapp centos:6.6 /bin/bash

2、挂载

docker run -dit --name Web11 -v /opt/downloads:/mnt centos:6.6 /bin/bash

docker run -dit --name Web11 -v /opt/downloads:/mnt:ro centos:6.6 /bin/bash

3、数据卷容器:

docker run -d -v /dbdata --name dbdata training/postgres echo Data-only container for postgres #创建一个命名的数据卷容器 dbdata

docker run -d --volumes-from dbdata --name db1 training/postgres #其他容器中使用 --volumes-from 来挂载 dbdata 容器中的数据卷

更多参考:

http://dockerpool.com/books

https://docs.docker.com/installation/#installation

时间: 2024-10-10 08:19:31

Docker折腾笔记的相关文章

Docker 学习笔记【1】Docker 相关概念,基本操作

计划:Docker 学习笔记[2] Docker 基础操作实操记录,Docker仓库.数据卷,网络基础学习---40 注:所有操作在root下执行 --1--概念: 1.Docker镜像: 镜像就是一个只读的模板,用于创建docker容器. Docker提供了简单的机制创建或者更新现有镜像,也可以从别处拿来现成镜像直接使用. 2.Docker容器: 可以认为是精简版的linux运行环境包含 [root权限,进程空间,用户空间,网络空间等]和应用程序 另外:镜像是只读的,容器基于镜像启动后创建一层

kali linux 折腾笔记

http://xiao106347.blog.163.com/blog/static/215992078201342410347137/ 这里告诉你刚刚装好kali后要做,有些也是不正确的,可能开始你就没有办法进行这一步,因为没有添加足够的正确的源 源添加参考我上一篇博文kali linux soucrse... 分享牛人的经验,也是为了备忘! kali linux 折腾笔记,码迷,mamicode.com

Docker 学习笔记【2】 Docker 基础操作实,Docker仓库、数据卷,网络基础学习

Docker 学习笔记[3] Docker 仓库实操,创建私有仓库,实操数据卷.数据卷容器,实操 网络基础  ---------高级网络配置和部分实战案例学习 ============================================================= Docker 学习笔记[1]Docker 相关概念,基本操作--------实操记录开始 ============================================================= 被

Docker学习笔记(一)什么是Docker

Docker学习笔记(一)什么是Docker Docker:容器技术是虚拟化技术的一种,是操作系统的虚拟化. 传统硬件虚拟化:虚拟硬件,事先分配资源,在虚拟的硬件上安装操作系统,虚拟机启动起来以后资源就会被完全占用. 操作系统虚拟化:docker是操作系统虚拟化,借助操作系统内核特性(命名空间.cgroups)实现,不需要模拟硬件行为,不需要安装操作系统. 优点: 硬件虚拟化需要安装操作系统占用空间大. 硬件虚拟化需要模拟硬件系统行为,内存和cpu消耗更大. 缺点: 容器进程崩溃,可能影响宿主机

Docker学习笔记(四)走进docker的世界

Docker学习笔记(四)走进docker的世界 一个容器实际上是运行在宿主机上的一个进程. 只不过在启动这个进程之前进行了一些特殊处理,让这个容器进入了一个全新的虚拟环境,与宿主机的环境分开, 所以这个进程及其子进程认为自己运行在一个独立的世界里面. #查看进程 sudo docker run -d cyf:sshd /usr/sbin sshd -D ps axf 可以看到在宿主机里面的5948这个sshd进程 下面进入docker容器查看 sudo docker-enter.sh 6867

docker学习笔记1 -- 安装和配置

技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔记:http://www.open-open.com/lib/view/open1423703640748.html 深入浅出docker:http://www.infoq.com/cn/articles/docker-core-technology-preview 安装 参考:http://www

个人--Docker学习笔记

Docker学习笔记 docker让应用分发,测试,部署变得前所未有的高效和轻松 docker利用率很高,一台主机上可以同时运行数千个docker容器 docker容器除了运行其中应用外,基本不消耗额外的系统资源 docker容器不需要额外的hypervisor支持,是内核级的虚拟化 docker容器几乎可以在任意平台上运行 docker的三个基本概念 镜像(image) 容器(container) 仓库(repository) 以上是docker的整个生命周期 镜像的作用是用来创建容器的.镜像

docker学习笔记(2)---Dockerfile

在docker学习笔记(1)中,我们提到了通过commit 的命令来提交新的image,下面我们来通过Dockerfile文件来生成image,而且使用Dockerfile,很方便移植. 一.Dockerfile中几个常用的指令: (1)FROM 格式: FROM <image> 或者 FROM <image>:<tag> (2)MAINTAINER 格式: MAINTAINER <name> 说明:设置生成image的作者 (3)RUN 格式: 使用she

Docker折腾手记-安装

Docker折腾手记-安装 安装 docker红的发紫,所以博主耳闻这么久,也要来折腾折腾了 研究不多,个人目前认为docker给我们带来了以下好处 开发机器因为开发原因,需要配置各种各校的环境,繁琐且耗费资源.配来配去还容易环境冲突.很折腾不说,甚至还会有重装系统的情况,虽然可以使用虚拟机,但是虚拟机费资源啊.开一两个的机器就该卡爆了.所以docker给我们带来了这种好处,低功耗,一次配置永久安心 同样是环境,在生产服务器,使用docker可以轻松隔离应用.不会在产生服务器装这个装那个.开发时