docker学习
记录docker的学习
第一步,首先修改一个文件,不然你什么都下不了,只对国内服务器,国外服务器可以无视这个。以后买服务器一定要习国外的啊。
vim /etc/docker/daemon.json
添加以下内容(网址是腾迅云的内网dns)
{
"registry-mirrors": [ "https://mirror.ccs.tencentyun.com" ],
"insecure-registries": [] }
现在就可以用docker了。
查看所有镜像
一、基本命令
docker images
下载镜像到本地
docker pull 镜像名[:版本]
删除镜像
docker rmi 镜像名[:版本]
运行一个容器(启动私有docker仓库服务)
docker run -d -p5000:5000 --restart=always --name registry -v /data/registry:/var/lib/registry registry:2
运行一个叫registry容器启动一个registry:2镜像,把宿主机的5000端口映射到容器中的5000端口,映射宿主机目录/data/registry到容器中的/var/lib/registry目录
我们就有一个自己的仓库了
上 传镜像到自己的仓库中
docker pull localhost:5000/镜像名【:版本号】
关闭容器
docker stop 容器名
开启容器
docker start 容器名
重启容器
docker restart 容器名
暂停,开启
docker pause 容器名
docker unpaues 容器名
连接到容器上,看看目录啥的bash可以换为命令直接执行
docker exec -it 容器名 bash
exit//退出
把容器的文件复制到宿主机中
docker cp 容器名:容器文件所在文件夹 宿主机文件名
docker cp server:/usr/share/nginx/html/index.html index.html
把宿主机的文件放到容器中
docker cp 宿主机文件名 容器名:容器目录
docker cp index.html server:usr/share/nginx/html/
删除容器
docker rm -f registry
docker rm -f `docker ps -a -q`//删除所有docker容器
把 镜像导出成tar包
docker save nginx>nginx.tar
docker rmi nginx //导入
docker load <nginx.tar
把容器转为镜像可以存波你的数据
docker commit -m 'zcj first dokcerImages' -a 'zcj' webserver1(容器名) nginx-zcj(生成后的镜像名)
容器名可以换在镜像id,生成的镜像名可以不写,不写就没名字喽
我们还可以使用别的操作系统来运行我们的容器
首先运行一个操作系统容器(下载相应的操作系统镜像,run这个镜像就可以运行一个操作统容器啦),再这个操作系统容器上进行再运行容器。
docker run -t -i ubuntu:15.10 /bin/bash
运行境像产生容器然后执行shell命令给我一个bash shell
运行容器时时执行多条命令
docker run -it myimage sh -c 'service mysql start && python test.py'
二、Dockerfile
FROM alpine:latest
MAINTAINER zcj
CMD echo 'hello docker'
有了Dockfile(dockerfile每一行就相当于一个镜像,多行就相当于镜像分层的概念,当然是要在docker build之后),dockfile有很多命令,学习之后可以用这个做一个自己的镜像之后我们就可以使用和装逼了,
docker build -t hello_world .
好了一个由dockerfile创建的hello_world镜像就己经生成了,有两种方法可以生成镜像一种是直接把容器直接打包成镜像,还有一种就是使用dockerfile来安装,第一种相比dockerfile的体积来说就是相当于一个2kb,一个200m。
不知道两者有什么区别请看这个
https://segmentfault.com/q/1010000008236066
我的理解就是第一种是己经生成好了的镜像,你直接拿来用就行了,
但是传输啥的相比第二种来说就凉了。
第二种呢,用dockerfile呢,这就牛逼了啊,用一些特殊的语法,来描述境像。
总结:Dockerfile不是镜像,是构建镜像的指令和配置。
三、多容器app
安装docker-compose
curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
给个执行权限
chomd 777 /usr/local/bin/docker-compose
还没有评论,来说两句吧...