获取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