安装
*tips:docker官方文档说linux内核版本不能低于3.13,如果内核低于此版本请先升级内核,否则安装后会报错.
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo
yum -y install docker-io
service docker start
基础命令
docker search 在仓库中寻找镜像
docker pull 拉取镜像
docker run 运行容器
docker ps 查看正在运行的容器
docker ps -l 查看所有容器
docker rm CONTAINERID删除一个容器
docker commit -p不暂停容器,提交容器镜像(带唯一编号进行提交)
docker build 通过dockerfile构建镜像
docker inspect ID 查看容器或镜像的详细信息,正在运行容器的所有参数
启动一个退出的容器:docker start CONTAINERID
attach到运行中的容器:docker attach CONTAINERID
创建一个新容器并登入:docker run -i -t IMAGE /bin/bash
docker rmi -f(强制) 删除一个镜像
docker push name:TAG 将新镜像保存入仓库
docker push name:TAG 将新镜像保存入仓库
导出镜像: docker export -o [OPTIONS] CONTAINER
导入本机镜像(换一台机器):docker load -i img.tar.bz2 REPOSITORY:TAG
远端机器镜像 docker import [OPTIONS] URL|- [REPOSITORY[:TAG]]
tarball (.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz) into it, then
-c, --change=[] Apply Dockerfile instruction to the created p_w_picpath
*在容器中安装新程序,比如安装ifconfig命令(centos7默认没有ifconfig):docker run centos yum install net-tools -y
如果yum不指定-y参数的话,yum命令会进入交互模式,需要用户输入命令来进行确认,在docker环境中是无法响应这种交互的。但使用docker run的-i -t参数就会响应这种交互,用户可以输入命令了,比如:docker run -i -t centos yum install net-tools
启动配置文件
ubuntu /etc/default/docker
centos /etc/sysconfig/docker
容器的端口映射
-p指定端口
指定容器的端口
指定宿主机及容器端口
指定IP和容器端口
指定IP宿主机端口、容器端口
-P所有端口
容器中部署静态WEB服务器
docker run -p 80 --name centos -i -t centos /bin/bash //端口映射
docker镜像操作
docker镜像仓库位置/var/lib/docker
docker p_w_picpaths -a --all
-f --filter过滤的信息
--no-trunk
-q只显示镜像的唯一ID
docker rmi -f 强制删除镜像
-no-prune保留副镜像
dockerfile方式制作镜像
docker build [OPTIONS] PATH |URL |-
--force-rm=false
--no-cache=false
--pull=false
-q,--quiet=false
--rm=true
-t,--tag=""
docker build -t='路径'
dockerfile指令
FROM 镜像:TAG 从基础镜像运行容器
MAINTAINER作者部分
RUN /bin/bash -c 运行指令,对容器作出修改
exec模式
EXPOSE 指定运行镜像的端口
CMD
ENTERYPOINT
ADD向镜像中添加文件
COPY
VOLUME
WORKDIR指定工作目录
ENV设置环境变量
USER指定运行用户
ONBUILD镜像触发器,镜像构建过程中插入的触发器指令