ubuntu通过docker官网提供的脚本下载docker服务:
wget -qO- https://get.docker.com/ | sh
sudo docker images #查看docker镜像
sudo docker pull 镜像名:标签 #下载基础镜像
busybos是一个精简的unix工具集
sudo docker search -s 10 镜像 #搜索被收藏10次以上的镜像
dockerfile实例
# # MAINTAINER Carson,C.J.Zeong <zcy@nicescale.com> # DOCKER-VERSION 1.6.2 # # Dockerizing CentOS7: Dockerfile for building CentOS images # FROM centos:centos7.1.1503 #基础镜像系统 MAINTAINER Carson,C.J.Zeong <zcy@nicescale.com> #维护管理者 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镜像导入导出
导出 docker save -o 包名.tar 镜像名 导入 docker load < bxk_hadoop1.tar