docker的基本使用
Posted yuan-x
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker的基本使用相关的知识,希望对你有一定的参考价值。
------------恢复内容开始------------
引子:
我认为docker相比传统的虚拟化技术最大的不同就是不虚拟化内核,使用共享宿主机内核的方式。通过namesapce,联合文件系统,cgroups这三种机制分别从网络,文件以及资源上进行隔离,通过docker镜像快速的实现扩容,这一点在测试进行部署测试环境以及在进行分布式压力测试的时候,比较友好。
namespace 网络隔离空间,网络空间空间机制,保证了网络的隔离
联合文件系统 每个单独的容器都会提供一个的单独的视图,我们在doceker容器内只能看到自己的文件,这样就保证了文件的隔离
cgropus 资源隔离,为每个容器申请固定的资源
但是每个容器都有通向内核的接口。
基本命令:
1 mac 安装docker
brew cask install docker
2 基本命令
docker run ubuntu:14.04 /bin/echo ‘hello world‘ | 使用一个容器启动镜像ubuntu14.04 执行程序/bin/echo |
docker run -t -i ubuntu:14.04 /bin/bash | 使用一个容器启动镜像ubuntu14.04 执行程序/bin/bash 交互模式 |
docker run -t -d ubuntu:14.04 /bin/sh | 使用一个容器启动镜像ubuntu14.04 执行程序/bin/bash 后台模式 |
docker run -t -i -d --name helloubuntu ubuntu14:04 /bin/sh -c ‘while true;do echo hello world ;sleep 1; done‘ |
给容器起一个别名 |
docker logs docker_id/docker-names | 查看容器的启动日志 |
docker ps docker ps -a |
查看运行的容器 |
docker stop docker_id/docker_names | 停止一个容器 |
docker start docker_id/docker_names | 启动一个容器 |
docker restart docker_id/docker-names | 重启一个容器 |
docker rm docker_id/docker_names docker rm $(name1,name2) docker rm $(docker ps -q -a) |
删除容器,如果容器处于运行状态需要加 -f参数 |
docker images | 查看所有的镜像 |
docker run --name mycicd -p 18888:8080 jenkins | 启动jenkins的镜像 并设置别名为mycicd将宿主机18888端口映射到容器8080端口 |
docker pull image_name:version | 拉去docker镜像 |
docker push image_name:version | 推送docker镜像 |
docker tag {source_image:tag your_image_name} | 给镜像搭上一个tag,但是docker image只是多出来一条记录,镜像的id是唯一标识 |
docker save busybox>busybox.tar | 打包镜像 |
docker load <busybox.tar.gz | 导入镜像 |
docker info | docker 信息 |
docker kill | 杀死doceker容器 |
docker exec -it docker_id /bin/bash | 进入docker容器中 |
查看容器原信息 docker inspect contain_name
宿主机查看容器运行情况 ps aux|grep jenkins
docker和宿主机之间拷贝文件
docker cp local_file_name docker_id:/file_path
运行容器执行命令
docker exec mycicd ping 192.168.1.1
挂载数据卷 持久化储存容器内的数据和端口映射有些像,在-v 之后容器中就可以访问到宿主机中的持久化位置
docker run -it -d -p 18888:8080 -v /root/blog:/hexo --name hexo hexo3
交互模式
以上是关于docker的基本使用的主要内容,如果未能解决你的问题,请参考以下文章