@xxliixin1993
2016-05-10T06:13:47.000000Z
字数 6094
阅读 1798
docker
root@ubuntu:~# ls -l /sys/class/misc/device-mapper
lrwxrwxrwx 1 root root 0 4月 19 09:06 /sys/class/misc/device-mapper -> ../../devices/virtual/misc/device-mapper
也可以grep 'device-mapper' /proc/devices
sudo echo deb https://get.docker.io/ubuntu docker main >/etc/apt/sources.list.d/docker.listcurl -s https://get.docker.io/gpg|sudo apt-key add -sudo apt-get updatesudo apt-get install lxc-docker安装完后 显示如下信息即成功root@ubuntu:~# docker infoContainers: 13Running: 0Paused: 0Stopped: 13Images: 4Server Version: 1.10.3Storage Driver: aufsRoot Dir: /var/lib/docker/aufsBacking Filesystem: extfsDirs: 29Dirperm1 Supported: falseExecution Driver: native-0.2Logging Driver: json-filePlugins:Volume: localNetwork: bridge null hostKernel Version: 3.13.0-67-genericOperating System: Ubuntu 14.04.1 LTSOSType: linuxArchitecture: x86_64CPUs: 2Total Memory: 7.707 GiBName: ubuntuID: JQFI:2MVE:NAFH:4N6I:JWBB:VRJS:7YHX:ZPXW:EMS5:4NHJ:A6PC:DQ3P
# Set the default forward policy to ACCEPT, DROP or REJECT. Please note that# if you change this you will most likely want to adjust your rulesDEFAULT_FORWARD_POLICY="ACCEPT"修改后ufw reload
docker search centos
从Docker Hub仓库下载一个 Ubuntu 12.04 操作系统的镜像。sudo docker pull ubuntu:12.04相当于sudo docker pull registry.hub.docker.com/ubuntu:12.04即从注册服务器registry.hub.docker.com中的ubuntu仓库来下载标记为12.04 的镜像。其实你可以把官方仓库缓存国内或者私有仓库下载,即该服务器地址就行下载成功后,你就可以运行测试了。例如$ sudo docker run -t -i ubuntu:12.04 /bin/bashroot@fe7fc4bd8fc9:/#
nohup docker deamon &>/dev/null &
使用docker images显示本地已有的镜像。
root@ubuntu:~# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZElearn/ping latest e6ad662e1e04 4 weeks ago 139.5 MBlearn/tutorial latest 8011b83f9e77 4 weeks ago 139.5 MB
可以分为获取已有镜像并更新,也可以利用本地文件系统创建一个新的。
$ sudo docker run -t -i learn/ping /bin/bashroot@a0dec558a93d:/#root@a0dec558a93d:/# apt-get install -y vimroot@:/# exit记住ID 为 a0dec558a93d$ sudo docker commit -m 'add vim' -a 'xxlixin' a0dec558a93d lixin/replace:v1
mkdir firstDoccd firsrDoctouch Dockerfilevim Dockerfile# First DockerFROM ubuntu:14.04MAINTAINER Docker lixin <xxlixin1993@gmail.com>RUN apt-get -qq updateRUN apt-get -qqy install vimsudo docker build -t="lixin/first:v1" .-t表示添加tag.是当前路径
Dockerfile基本语法
- 使用#来注释
- FROM指令告诉Docker使用哪个镜像作为基础
- MAINTAINER 是维护者的信息
- RUN开头的指令会在创建中运行,比如安装一个软件包,在这里使用 apt-get 来安装了一些软件 RUN 或RUN ["executable", "param1", "param2"]
- 还可以是用ADD命令复制本地文件到镜像 例如ADD /etc/issue /tmp
- 用EXPOSE命令来向外部开放端口 例如EXPOSE 80
- 用CMD命令来描述容器启动后运行的程序 例如CMD ["/usr/sbin/apachectl", "-D", "FOREGROUND"]
- EXPOSE port 告诉 Docker 服务端容器暴露的端口号,供互联系统使用。在启动容器时需要通过 -P,Docker 主机会自动分配一个端口转发到指定的端口。
- ENV key value 设置环境变量
- COPY src des 复制本机的src到容器的des 用绝对路径
docker logindocker pull xxlixin1993/fitstcentos6.6注意:最好在dockerhub网站上创建好repository在上传,因为有可能名字有冲突 可以用docker tag来修改名字和标记
docker rmi -f lixin/centos6.6
先开启一个容器,例如docker run -itd ubuntu:14.04-d即以守护态进行然后用docker ps -l可以查看状态用docker stop|start|restart ID可以去进行停止,启动,重启的操作用docker attach ID可以进入docker容器内进行操作
要搭建的机器上:先在要搭建的机器上下载registry镜像,这里以192.168.110.164为例sudo docker pull registrysudo docker run -d -p 5000:5000 registry默认情况下,会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/tmp/registry下,如下:sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry这时用netstat -tnl|grep 5000可以看的已经启动了在客户端的机器上:以ubuntu为例修改配置文件vim /etc/init/docker.conf修改添加–insecure-registry 192.168.110.164:5000script# modify these in /etc/default/$UPSTART_JOB (/etc/default/docker)DOCKER=/usr/bin/$UPSTART_JOBDOCKER_OPTS=if [ -f /etc/default/$UPSTART_JOB ]; then. /etc/default/$UPSTART_JOBfiexec "$DOCKER" daemon $DOCKER_OPTS –insecure-registry 192.168.110.164:5000end scriptvim /etc/default/docker注释了原有的改为DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=192.168.110.164:5000"然后sudo restart docker接下了就可以推送了sudo docker push 192.168.110.164:5000/centos6.6 名字一点要以私有仓库ip:port为最开始下载私有仓库镜像sudo docker pull 192.168.110.164:5000/centos6.6查看私有仓库镜像curl http://192.168.110.164:5000/v1/search(官网有一套RESTful API https://docs.docker.com/registry/spec/api/#deleting-an-image)
docker run -itd centos6.6:latest /bin/bash进入容器内部进行nginx的安装,用yum就行docker commit -m 'add nginx' -a 'xxlixin' ID号 名字:TAG例docker commit -m 'nginx' -a 'xxlixin' bbf7a2e94f14 centos/nginx:v2
# nginx dockerfileFROM centos/nginx:v2MAINTAINER Docker lixin <xxlixin1993@gmail.com>ENTRYPOINT service nginx start && /bin/bash
docker build -t 'nginx' . docker run -itd -p 1234:80 nginx```
- 运行 用本机的1234端口绑定80端口
- 然后访问本机就可以的1234端口测试
docker run -itd -p 1234:80 -v /home/lixin/api:/www sphinx:v3 运行一个sphinx:v3的容器,绑定本机的1234端口和容器的80端口,并将本机的/home/lixin/api挂载在容器的/www目录下docker run -it centos6.6 /bin/bashwget http://sphinxsearch.com/files/sphinx-2.2.10-release.tar.gz./configure --prefix=/usr/local/sphinx/ --with-mysql --enable-id64;make && make install
wget http://www.coreseek.cn/uploads/csft/4.0/coreseek-4.1-beta.tar.gztar zxvf coreseek-4.1-beta.tar.gzcd coreseek-4.1-beta/mmseg-3.2.14./bootstrap./configure --prefix=/usr/local/mmseg3make && make install<div class="md-section-divider"></div>
如果遇到问题error: cannot find input file: src/Makefile.in 或者遇到其他类似error错误时... ,按下面的步骤:
yum -y install libtool
aclocal
libtoolize --force
automake --add-missing
autoconf
autoheader
make clean
yum -y install expat expat-develcd csft-4.1/./buildconf.sh./configure --prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysqlmake && make install命令行测试mmseg分词,coreseek搜索(需要预先设置好字符集为zh_CN.UTF-8,确保正确显示中文)$ cd testpack$ cat var/test/test.xml #此时应该正确显示中文$ /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml$ /usr/local/coreseek/bin/indexer -c etc/csft.conf --all$ /usr/local/coreseek/bin/search -c etc/csft.conf 网络搜索结果应为Coreseek Fulltext 4.1 [ Sphinx 2.0.2-dev (r2922)]Copyright (c) 2007-2011,Beijing Choice Software Technologies Inc (http://www.coreseek.com)using config file 'etc/csft.conf'...index 'xml': query '网络搜索 ': returned 1 matches of 1 total in 0.000 secdisplaying matches:1. document=1, weight=1590, published=Thu Apr 1 07:20:07 2010, author_id=1words:1. '网络': 1 documents, 1 hits2. '搜索': 2 documents, 5 hits