在ubuntu14.4下安装Docker服务
sudo apt-get update
sudo apt-get upgrade
sudo curl -fsSL https://get.docker.com/ | sh
sudo curl -fsSL https://get.docker.com/gpg | sudo apt-key add -
启动服务:
sudo service docker start
获取ubuntu镜像
sudo docker pull dl.dockerpool.com:5000/ubuntu:14.04
查看服务状
sudo service docker status
安装docker UI(这个不太好用)
sudo git clone https://github.com/crosbymichael/not-dockers-ui.git
cd not-dockers-ui
sudo apt-get install npm
sudo npm install grunt
sudo npm install -g grunt-cli
sudo grunt run
sudo docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker
sudo usermod -aG docker root
Dockerfile的格式
FROM ubuntu:14.04 //指定生成镜像的系统版本
RUN apt-get update
RUN apt-get -y install oracle-java8-installer
RUN apt-get -y install oracle-java8-set-default
RUN apt-get -y install mysql-server-5.6
ADD google-chrome-stable_current_amd64.deb /opt
生成镜像
sudo docker build -t=image_name . // 点号表示在当前目录查找Dockerfile
保存镜像到文件
sudo docker save image_name > /home/tetra/image_name.tar
导入镜像
sudo docker load < /home/tetra/image_name.tar
从镜像创建容器
sudo docker run -d -h image_name -p 40001:80 -p 40002:3306 -p 40003:12357 --name container_name --volume /opt/dist:/opt/dist -t -i tetra /bin/bash
启动容器命令
sudo docker start container_name
外网访问docker服务
在ubuntu14.4中,在/etc/default/docker 文件中,增加一行:
DOCKER_OPTS="-H=unix:///var/run/docker.sock -H=0.0.0.0:41235"
重启docker服务
sudo service docker restart
如果修改/etc/default/docker/ 文件不生效,修改/lib/systemd/system/docker.service 文件,在里面增加一行:
EnvironmentFile=-/etc/default/docker
修改:
ExecStart=/usr/bin/docker -d -H fd://
为:
ExecStart=/usr/bin/docker -d -H fd:// $DOCKER_OPTS
然后重启docker服务。
资源监控
docker stats
由于在一台宿主机上生成的容器过多,导致mysql服务器没法运行,解决办法
sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld
docker container备份迁移脚本
#!/bin/sh
container_ids=`docker ps -a --format "模板:.ID"`
for container_id in $container_ids
do
echo $container_id
docker export $container_id > "$container_id"".tar"
done
恢复导出的container
docker import /home/tetra/0222acdcc.tar