Docker 是一个开源的应用容器引擎,基于Go语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

# docker常用命令

# 获取镜像:docker pull image_name

# (创建容器)运行镜像:docker run -it image_name /bin/bash

# (创建容器)运行镜像(挂载本地目录test到容器内的/root/test):docker run -it -v /test:/root/test image_name /bin/bash

# 删除镜像:docker image rm image_id 

# 进入容器:docker exec -it container_id /bin/bash

# 删除容器 docker rmi container_id/image_id

# 清理docker残余临时文件:docker image prune

# 查看正在运行的docker进程:docker ps

# 查看所有的docker进程:docker ps -a

# 根据标签删除镜像:docker image rm image_name:v1 或者:docker rmi image_name:v

# 根据ID删除镜像: docker image rm image_id  或者:docker rmi image_id

# 根据容器id启动容器:docker start container_id

# 停止容器:docker stop container_id

# 将容器导出为tar文件:docker export -o output_file_name.tar container_id

# 将压缩包中的镜像文件导入镜像库中并重命名,及版本标签:docker import output_file_name.tar new_image_name:v1.0

# 另存镜像并重命名:docker tag new_image_name:v1.0 my_image_name:v2.0

# 将镜像push到局域网的镜像库中:docker push my_image_name:v2.0

# 退出容器并停止:Ctrl+D

# 退出容器,保持容器运行:Ctrl+P+Q

# 将容器保存为镜像:docker commit -a 'autho_name' -m 'image description' container_id image_name:v1.0

# 利用dockerfile构建镜像: docker build --rm --tag docker_name:v1.0 -f /path/Dockerfile .

# 清理删除已经退出的容器:docker container rm $(docker ps -a |grep Exited |awk '{print $1}')

# 本机正在运行的容器:docker container ls

# 删除容器:docker rm -f container_id

# 容器时间和宿主机的时间进行同步

docker run -it -v /etc/localtime:/etc/localtime:ro --restart=always --net=host image_name:version /bin/bash

利用Dockerfile制作Docker镜像

示例

##Dockerfile

FROM base_image_name

COPY etcfile /etcfile

COPY Miniconda3-4.3.31-Linux-x86_64.sh /opt

ENV PATH /opt/miniconda/bin:$PATH

RUN /bin/bash /opt/Miniconda3-4.3.31-Linux-x86_64.sh -b -p /opt/miniconda \

&& echo $PATH && rm -f /opt/Miniconda3-4.3.31-Linux-x86_64.sh \

&& cp /etcfile/sources.list /etc/apt/ && rm -rf /etc/apt/sources.d/* \

        && apt-get update 

RUN apt-get -y install gcc g++ nano python-dev libsasl2-dev sasl2-bin \

                libsasl2-2 libsasl2-dev libsasl2-modules libsasl2-modules-gssapi-mit  krb5-user libkrb5-dev \

        && cp /etcfile/krb5.conf /etc/ \

        && mkdir ~/.pip && cp /etcfile/pip.conf ~/.pip/ \

        && pip install pyhive thrift thrift-sasl hdfs[kerberos]

写好Dockerfile以后执行docker build命令进行镜像的制作,等待几分钟便可以打好镜像,

docker build --rm --tag image_name:v1.0 -f /path/Dockerfile .

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐