获取Docker
上面两个工具,根据当前系统要求选用一个即可。Windows 10的话可能需要安装Docker for Windows
启动Docker
完成安装之后,在开始菜单点击Docker Quickstart Terminal
可以进入Docker环境。
安装Linux镜像
以Debian为例来说明下,
获取指定Debian版本
docker pull debian:jessie
运行获取到的Debian Image
docker run -it --name debian debian:jessie bash
配置运行的Debian,默认拉取的基本什么内容也没有
安装vim
apt-get update
apt-get install vim
配置源,修改sources.list,用国内的源,比如网易的Debian镜像
vim /etc/apt/sources.list
deb http://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
安装所需的各项软件,例如,
基础库
apt-get install build-essential
apt-get install git
apt-get install wget
apt-get install zlibc zlib1g zlib1g-dev
apt-get install libssl-dev
apt-get install libreadline6 libreadline6-dev
从源代码安装最新Python
wget -c https://www.python.org/ftp/python/2.7.14/Python-2.7.14rc1.tgz
tar -xzvf Python-2.7.14rc1.tgz
cd Python-2.7.14rc1
./configure
make && make install
从源代码安装setuptools
wget -c https://github.com/pypa/setuptools/archive/v39.0.1.tar.gz
tar -xzvf v39.0.1.tar.gz
cd setuptools-39.0.1
python bootstrap.py
python setup.py install
从源代码安装pip
wget https://pypi.python.org/packages/c4/44/e6b8056b6c8f2bfd1445cc9990f478930d8e3459e9dbf5b8e2d2922d64d3/pip-9.0.3.tar.gz
tar -xzvf pip-9.0.3.tar.gz
cd pip-9.0.3
python setup.py install
安装supervisor
pip install supervisor
安装MongoDB
wget -c http://downloads.mongodb.org/linux/mongodb-linux-x86_64-debian81-3.2.8.tgz
tar -xzvf mongodb-linux-x86_64-debian81-3.2.8.tgz
vim ~/.bashrc
export MONGOHOME=/path/to/mongo
export PATH=$PATH:$MONGOHOME/bin
保存container
docker commit debian dev
启动镜像
启动的时候注意配置端口映射与路径映射,
docker run -it --name 'dev1' -p 50001:5000 -v //c/Users:/server /server/path/to/program/start.sh
start.sh里为需要启动的服务,末尾加上,
tail -f /dev/null
来让container不退出。
默认路径映射需要在c:/Users下,在5-useful-docker-tip-and-tricks-on-windows里提供了配置任意目录映射的方法。
打开Virtualbox进入虚拟机,添加共享文件夹,命名为shared,
cd /mnt/sda1/var/lib/boot2docker
vi profile
mkdir -p /shared
mount -t vboxsf -o uid=1000,gid=50 shared /shared
启动的时候指定,
docker run -it --name "test" -v //shared:/shared debian:jessie bash
容器中的MongoDB的数据配置如果只在容器路径中的话,在关闭之后就会丢失。因此MongoDB的数据需要写入到持久存储的地方。MongoDB数据在Docker中无法直接写入VirtualBox Shared Folder中,需要做一定处理,
启动的时候绑定目录到虚拟机目录下,
-v /var/lib/boot2docker/my-mongodb-data/:/data/db/
或者用docker volume命令创建,
docker volume create --name=mongodata
docker run -d -p 27017:27017 -v mongodata:/data/db --name=mymongo mongodb:3.3
常用命令
查看镜像
docker images
查看运行的container
docker ps -a
停止运行的container
docker stop container_id
移除镜像
docker rmi image_id
移除container
docker rm container_id
移除所有container
docker rm $(docker ps -a -q)
重启container
docker restart container_id
将image保存到文件
docker save -o /path/to/output image_id
从文件加载image
docker load -i /path/to/image