安装docker
vim /etc/apt/sources.list 加入以下代码:
deb http://http.debian.net/debian wheezy-backports main
然后刷新源: apt-get update
如果有安装过docker,则先删除旧版本docker
apt-get purge lxc-docker*
apt-get purge docker.io*
apt-get update
确认apt添加了https方法和CA cerificates
apt-get install apt-transport-https ca-certificates
添加一个新的GPG key
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76
编辑文件:
vim /etc/apt/sources.list.d/docker.list, 因为基于Debian Wheezy版本
deb https://apt.dockerproject.org/repo debian-wheezy main
apt-get update
确认正确安装repository
apt-cache policy docker-engine
正式安装:
apt-get update
apt-get install docker-engine
systemctl start docker
docker run hello-world
docker 的一些命令
docker search ubuntu查找镜像
docker pull 拉取镜像
docker run -it imageID i 交互式 t terminal 退出ctrl p+ctrl +q
后台运行 加上个-d daemon重新进入后台的docker docker attach containID
但有时attach进不去,可以使用 docker exec -it containID /bin/bash
更新:attach退出后会导致容器死掉,所以采用docker exec -it xxx /bin/bash
docker stop containID 每次run 一次就是一个新的容器,docker ps -a查看还可运行时指定container 的名称 --name
利用Dockerfile构建docker镜像 Dockerfile文件
利用docker build -t 镜像名称:标签名称 . -t指tag 后面有个 点表示要将Dockerfile放在当前目录下且Dockerfile名称就为Dockerfile
docker images查看本地镜像 ,运行已构建好的镜像
docker run -d -p 8888:8888 -v local:docker --name xxx image:tag
-d 后台 -p本地端口-vdocker和本地互通的位置 :前面为本机 后面为docker的
进入docker docker exec -it containerId /bin/bash
Dockerfile 文件内容:每个docker命令需大写:具体含义
FROM ubuntu:lastest #从哪个镜像
MAINTAINER xxx 作者
RUN 构建docker镜像运行的命令
ADD 本地 docker 添加本地的东西到docker内
ENV JAVA_HOME /usr/jdk1.8 设置环境变量
EXPOSE 8443 对外暴露哪个端口
WORKDIR xxx 切换到docker内的指定目录
ADD start.sh start.sh
RUN chmod +x start.sh
CMD "./start.sh" 每次run docker时执行的命令 这里有一个大坑!!!
运行docker容器后如果docker命令执行完之后,就会自动exit,它自己就会觉得没什么事做,就exit了,尽管加了 -d 后台
所以,须在CMD start.sh 中执行指定命令后加入一个死循环,以保持容器一直运行,比如说
while true:
do
sleep 10s
done