中文文档:
http://www.dockerinfo.net/document
简介:
Docker是一个开源项目,它基于 Google 公司推出的 Go 语言实现。项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。Docker自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker 的基础是 Linux 容器(LXC)等技术。
常用命令:
1、Docker服务管理
2、Docker软件环境
3、容器管理
4、网络管理
5、镜像管理
6、基础镜像做法
7、Docker文件路径
Docker服务管理:
下载最新版的docker
yum -y install docker-ce
查看docker运行状态
systemctl status docker
启动docker
systemctl start docker
停止docker
systemctl stop docker
docker重启docker
systemctl restart
停止docker
service docker stop
重启docker
service docker restart
Docker软件环境:
查看docker版本号
docker version
查看docker信息
docker info
查询所有命令
docker --help
查看某个命令的帮助文档
docker [command] --help
容器管理:
以交互模式创建容器,这样才能启动之后不退出.
docker run -it --name centos6.10 -p 7000:6379 dockerhub/centos:6
启动mysql可以直接用参数d,否则会卡在里面出不来,而且要记得输入root用户的密码
docker run -d --name mysql-1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7
列出所有容器信息
docker ps -a
不加截取的显示所有信息
docker ps --no-trunc -a
启动容器(可追加多个)
docker start redis7000
停止容器(可追加多个)
docker stop redis7000
重启容器(可追加多个)
docker restart redis7000
查看各个容器占用CPU和内存的情况
docker stats -a
进入到容器控制台中
docker exec -it redis7000 bash
可以直接在容器中执行命令
docker exec -it redis7000 [linux command]
根据容器id删除容器
docker rm a5184a35532
根据容器名称删除容器
docker rm redis7000
将文件拷贝到容器中
docker cp ROOT.war easyMall-tomcat:/usr/local/tomcat/webapps/
网络管理:
创建网络
docker network create --subnet=172.18.0.0/24 slgdockernet
列出当前网络
docker network ls
查看某个网络中的节点情况
docker network inspect slgdockernet
显示所有容器的IP地址
docker inspect --format='{{.Name}} - {{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
查看某个容器的IP地址
docker inspect 容器ID | grep IPAddress
查看某个容器的IP地址by名称或ID
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id
重建docker网络方法:
pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
docker -d
service docker restart
镜像管理:
从Docker Hub查找有哪些公共可用的镜像
docker search keywords
从镜像仓库中下载,前面是软件后面是版本号
docker pull centos:6
查看当前拥有的镜像
docker images
装载redis镜像
docker load -i redis-3.2.8.tar
根据镜像id导出镜像
docker save a2a69ca5184a > jt-centOS6.tar
根据镜像名称导出镜像
docker save -o redis-3.2.8.tar redis:3.2.8
根据id删除镜像文件
docker rmi a2a69ca5184a
根据repository:tag删除镜像
docker rmi mysql:5.7
标记本地镜像(设置名字)
docker tag 44a8e1a5c0b2 docker.io/mysql:5.7
(创建镜像,其中–rm表示删除中间环节产生的容器。注意最后那个“点”必须加!代表当前目录!并且Dockerfile必须也在当前目录)
docker build --rm -t dockerhub/centos6.10:0.0.1 .
将某个容器创建为一个新镜像,注意是容器ID而非镜像ID
docker commit 991660e8a4d2 slgdocker/redis2
查看依赖某个镜像的其它镜像,since后面即为镜像ID
docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=f7b62139738e)
基础镜像做法:
1、进入https://hub.docker.com/_/centos/,找到下方的CentOS image documentation,根据自己的需求选择合适的命令
2、在linux控制台敲入docker pull centos:6(该大版本的最近小版本),如果需要选择精确版本,那么需要将tag也键入,例如docker pull centos:6.10
3、此时最基础的系统镜像就创建好了,之后可以按照网站后面的提示将该镜像中的/etc/yum.conf重新配置下,并且将必须的软件安装一下
4、再根据当前容器commit创建一个新的镜像即可
Docker文件路径:
本地镜像默认保存在Docker宿主机的/var/lib/docker目录下
容器默认保存在Docker宿主机的/var/lib/docker/containers目录下,
下面每一个文件夹的名称即为containerID
微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!
网友评论