docker

cat >/etc/yum.repos.d/docker.repo <<-EOF
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF


  • 代码一致:

在没有docker之前,开发、测试、生成环境可能不一样,如发布某个服务的端口时,开发是1000,而生产是2000,这就导致配置文件不一致。然而使用docker后,我在容器内的端口都是一样的,而容器对外暴露的端口可能不一样。

  • 开发环境与生产环境的一致性

我们知道,在生产环境的部署比较复杂,服务非常繁多。通过docker,我们可以单机版上通过容器来模拟生产环境的分布式环境。从而让开发人员的开发更有效率。

  • 快速部署

 可以将docker理解为轻量级的虚拟机,启动docker容器速度很快,启动虚拟机很慢。



设置开机启动Docker Daemon进程

systemctl start docker.service

systemctl enable docker.service

systemctl grep docker查看docker进程的状态

systemctl disable firewalld

yum -y install iptables-services

systemctl enable iptables

systemctl start iptables


docker组件之间的关系


wKioL1Xj9_bwgSnVAAGYUAcmo90256.jpg

docker search 搜索镜像名

docker pull  下载镜像

docker images 容器

docker run java /bin/echo Hello Docker 

docker rm 删除容器

docker rm $(docker ps -a -q) 删除所有容器

docker start   启动容器

docker stop    停止容器

docker logs    查看容器logs

docker inspect  查看容器具体信息

docker port     容器的端口

docker kill               杀死容器进程

docker pause          暂停容器进程

docker push            将镜像推送远程仓库

docker rm                 删除容器

-f 强行移除该容器,即使其正在运行;

-l 移除容器间的网络连接,而非容器本身;

-v 移除与容器关联的空间


docker save debian02 >/root/debian02.tar #debian02镜像打包 

docker load < debian02.tar #导入镜像  

docker images #查看存在的镜像


docker run命令详解

    Usage: docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]  
    Run a command in a new container  
    -a=map[]: 附加标准输入、输出或者错误输出  
    -c=0: 共享CPU格式(相对重要)  
    -cidfile="": 将容器的ID标识写入文件  
    -d=false: 分离模式,在后台运行容器,并且打印出容器ID  
    -e=[]:设置环境变量  
    -h="": 容器的主机名称  
    -i=false: 保持输入流开放即使没有附加输入流  
    -privileged=false: 给容器扩展的权限  
    -m="": 内存限制 (格式:<number><optional unit>, unit单位 = b, k, m or g)  
    -n=true: 允许镜像使用网络  
    -p=[]: 匹配镜像内的网络端口号  
    -rm=false:当容器退出时自动删除容器 (不能跟 -d一起使用)  
    -t=false: 分配一个伪造的终端输入  
    -u="": 用户名或者ID  
    -dns=[]: 自定义容器的DNS服务器  
    -v=[]: 创建一个挂载绑定:[host-dir]:[container-dir]:[rw|ro].如果容器目录丢失,docker会创建一个新的卷  
    -volumes-from="": 挂载容器所有的卷  
    -entrypoint="": 覆盖镜像设置默认的入口点  
    -w="": 工作目录内的容器  
    -lxc-conf=[]: 添加自定义-lxc-conf="lxc.cgroup.cpuset.cpus = 0,1" 
    -sig-proxy=true: 代理接收所有进程信号(even in non-tty mode)  
    -expose=[]: 让你主机没有开放的端口  
    -link="": 连接到另一个容器(name:alias)  
    -name="": 分配容器的名称,如果没有指定就会随机生成一个  
    -P=false: Publish all exposed ports to thehost interfaces 公布所有显示的端口主机接口 



    docker top <container> #显示容器内运行的进程  
    docker images #查询所有的镜像,默认是最近创建的排在最上。  
    docker ps #查看正在运行的容器  
    docker ps -l #查看最后退出的容器的ID  
    docker ps -a #查看所有的容器,包括退出的。  
    docker logs {容器ID|容器名称} #查询某个容器的所有操作记录。  
    docker logs -f {容器ID|容器名称} #实时查看容易的操作记录。 


删除容器与镜像

    docker rm$(docker ps -a -q) #删除所有容器  
    docker rm <容器名or ID> #删除单个容器  
    docker rmi <ID> #删除单个镜像  
    docker rmi$(docker images | grep none | awk '{print $3}' | sort -r) 


容器迁器

    docker export <CONTAINER ID> > /home/export.tar #导出  
    cat /home/export.tar | sudo docker import - busybox-1-export:latest 

# 导入export.tar文件  
    docker save debian> /home/save.tar #将debian容器打包  
    docker load< /home/save.tar #在另一台服务器上加载打包文件 

save和export的对比参考地址:

http://www.fanli7.net/a/bianchengyuyan/C__/20140423/452256.html



本文出自 “晴空” 博客,谢绝转载!

你可能感兴趣的:(docker命令)