@xxliixin1993
2016-05-10T14:13:47.000000Z
字数 6094
阅读 1579
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.list
curl -s https://get.docker.io/gpg|sudo apt-key add -
sudo apt-get update
sudo apt-get install lxc-docker
安装完后 显示如下信息即成功
root@ubuntu:~# docker info
Containers: 13
Running: 0
Paused: 0
Stopped: 13
Images: 4
Server Version: 1.10.3
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 29
Dirperm1 Supported: false
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 3.13.0-67-generic
Operating System: Ubuntu 14.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.707 GiB
Name: ubuntu
ID: 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 rules
DEFAULT_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/bash
root@fe7fc4bd8fc9:/#
nohup docker deamon &>/dev/null &
使用docker images显示本地已有的镜像。
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
learn/ping latest e6ad662e1e04 4 weeks ago 139.5 MB
learn/tutorial latest 8011b83f9e77 4 weeks ago 139.5 MB
可以分为获取已有镜像并更新,也可以利用本地文件系统创建一个新的。
$ sudo docker run -t -i learn/ping /bin/bash
root@a0dec558a93d:/#
root@a0dec558a93d:/# apt-get install -y vim
root@:/# exit
记住ID 为 a0dec558a93d
$ sudo docker commit -m 'add vim' -a 'xxlixin' a0dec558a93d lixin/replace:v1
mkdir firstDoc
cd firsrDoc
touch Dockerfile
vim Dockerfile
# First Docker
FROM ubuntu:14.04
MAINTAINER Docker lixin <xxlixin1993@gmail.com>
RUN apt-get -qq update
RUN apt-get -qqy install vim
sudo 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 login
docker 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 registry
sudo 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:5000
script
# modify these in /etc/default/$UPSTART_JOB (/etc/default/docker)
DOCKER=/usr/bin/$UPSTART_JOB
DOCKER_OPTS=
if [ -f /etc/default/$UPSTART_JOB ]; then
. /etc/default/$UPSTART_JOB
fi
exec "$DOCKER" daemon $DOCKER_OPTS –insecure-registry 192.168.110.164:5000
end script
vim /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 dockerfile
FROM centos/nginx:v2
MAINTAINER 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/bash
wget 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.gz
tar zxvf coreseek-4.1-beta.tar.gz
cd coreseek-4.1-beta/mmseg-3.2.14
./bootstrap
./configure --prefix=/usr/local/mmseg3
make && 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-devel
cd 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-mysql
make && 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 sec
displaying matches:
1. document=1, weight=1590, published=Thu Apr 1 07:20:07 2010, author_id=1
words:
1. '网络': 1 documents, 1 hits
2. '搜索': 2 documents, 5 hits