ubuntu14版本以上自带docker
但版本较旧
sudo apt-get install -y docker.io
sudo ln -s /usr/bin/docker /usr/local/bin/docker
sudo sed -i ‘$acomplet -F _docker docker‘ /etc/bash_completion.d/docker
ufw:
vim /etc/default/ufw
DEFAULT_FORWARD_POLICY = "ACCEPT"
sudo ufw reload
docker命令报错时FATA[0000] Shutting down daemon due to errors: pid file found, ensure docker is not running or delete /var/run/docker.pid
加sudo
sudo docker images #查看docker镜像
sudo docker pull 镜像名:标签 #下载基础镜像
busybos是一个精简的unix工具集
sudo docker search -s 10 镜像 #搜索被收藏10次以上的镜像
dockerfile实例
#
# MAINTAINER Carson,C.J.Zeong <[email protected]>
# DOCKER-VERSION 1.6.2
#
# Dockerizing CentOS7: Dockerfile for building CentOS images
#
FROM centos:centos7.1.1503 #基础镜像系统
MAINTAINER Carson,C.J.Zeong <[email protected]> #维护管理者
ENV TZ "Asia/Shanghai" #环境变量
ENV TERM xterm
ADD aliyun-mirror.repo /etc/yum.repos.d/CentOS-Base.repo #ADD可以拷贝url下的文件,和解压功能
ADD aliyun-epel.repo /etc/yum.repos.d/epel.repo
RUN yum install -y curl wget tar bzip2 unzip vim-enhanced passwd sudo yum-utils hostname net-tools rsync man && \
yum install -y gcc gcc-c++ git make automake cmake patch logrotate python-devel libpng-devel libjpeg-devel && \
yum install -y --enablerepo=epel pwgen python-pip && \
yum clean all #RUN是镜像的操作命令,每个RUN就是一层
RUN pip install supervisor
ADD supervisord.conf /etc/supervisord.conf
RUN mkdir -p /etc/supervisor.conf.d && \
mkdir -p /var/log/supervisor
EXPOSE 22 #EXPOSE是这个容器的端口号,但是对于客户端是看不见的,宿主机上的一个端口会映射到容器的端口号,客户端访问宿主机的端口
ENTRYPOINT ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"] #容器启动时执行
VOLUME ["/opt/project"] #持久化的
.dockerignore文件 存放忽略文件名
sudo docker build -t 镜像名:标签(可以写版本) Dockerfile所在的目录
sudo docker run [参数] 镜像名:标签
参数:
-it #i 标志保证容器中STDIN(标准输入)是开启的,t是tty伪终端
-d #后台运行,返回ID号
-P docker端口号 #宿主机会给自动分配端口号
-p docker宿主端口号:dokcer端口号
--name docker运行时的名字
-v 宿主机目录/docker中的目录 #挂载
-h=A #容器的主机名
sudo docker ps -a #查看docker所有进程
sudo docker commit id号 镜像名 #在docker进程中创建镜像
sudo docker exec -it ID号或docker名 /bin/bash #进入ps运行中容器的伪终端
sudo docker rm -f ID号或docker名 #删除正在运行docker
sudo docker rm
$(sudo docker
ps
-a -q)
#删除所有的容器
sudo docker stop ID号或docker名 #停容器
sudo docker start ID号或docker名 #启动容器
单个docker宿主机可以用fig管理