docker基本命令和基本操作命令

docker-教程

docker编程环境小书匠

docker 教程

Docker官方英文资源
docker官网:http://www.docker.com

Docker windows入门:https://docs.docker.com/windows/

Docker Linux 入门:https://docs.docker.com/linux/

Docker mac 入门:https://docs.docker.com/mac/

Docker 用户指引:https://docs.docker.com/engine/userguide/

Docker 官方博客:http://blog.docker.com/

Docker Hub: https://hub.docker.com/

Docker开源: https://www.docker.com/open-source

Docker中文资源
Docker中文网站:https://www.docker-cn.com/

Docker安装手册:https://docs.docker-cn.com/engine/installation/

Docker 国内镜像
网易加速器:http://hub-mirror.c.163.com

官方中国加速器:https://registry.docker-cn.com

ustc的镜像:https://docker.mirrors.ustc.edu.cn

daocloud:https://www.daocloud.io/mirror#accelerator-doc(注册后使用)

docker三个重要的问题:dockerfile 容器 镜像

1.dockerfile:把需要什么系统,需要装什么软件,需要怎么配置环境等等全部都写进Dockerfile里面,相当于是一个基于docker的全自动生成镜像的一个脚本.

$ docker build -t image:tag #依据dockerfile建立docker

2.镜像:docker的静态,Dockerfile生成的是镜像,docker 镜像是docker移植的关键,容器是以save 、load docker镜像为主。

3.容器:容器是docker的动态,由镜像run出来的(sudo docker run),容器是docker的精华,你可以理解为容器技术就是应用了集装箱的思维,把所需要的所有东西都放进一个集装箱(container)里面,哪里需要服务,我直接把整个集装箱运过去,然后你进去集装箱享受服务就好了。

docker命令集合

#从当前目录下的Dockerfile(命名dockerfile好像也能识别,其他就不行了)建立镜像
sudo docker build -t reponame:tag .
#别忘了最后那个.!

sudo docker images #查看镜像
sudo docker ps  #查看当前运行的容器
sudo docker ps -a #查看全部容器(包括运行中的和停止的)

sudo docker run -it --name blabla  -p <物理机>:<容器>(e.g. 127.0.0.1:3306:3306)  -v /your/local/path/:/map/path/in/docker/ -v /etc/localtime:/etc/localtime --net =host -d reponame:tag
# 启动容器 
#[-it 是启动交互和伪终端]
#[-p  :<宿主机端口>:<容器端口>  将宿主机(物理机)映射或者可以理解为绑定,可以指定,也可以不指定,不指定默认是0.0.0.0,建议还是指定]
#[-v  是挂载本机目录到到docker目录,最好每次都把-v /etc/localtime:/etc/localtime也带上,确保docker 容器内时间和服务器时间一致]
#[-d  是daemonize的意思,就是使容器成为守护进程,后台运作]  
#[--net是设置docker的网络模式,默认不设置的话就是bridge模式,现在设置为和物理机网络绑定的host模式,更多可以看 Docker的4种网络模式(http://www.cnblogs.com/gispathfinder/p/5871043.html)
#[--link 是容器链接]

#复习几个特别的IP:
#①127.0.0.1是本地回环地址,代指本机; [对于绑定在127.0.0.1的端口而言,外部无法访问,不对外打开,仅仅对内打开]
#②0.0.0.0 代表所有不清楚的IP,安全性差,也是指本机?;[对于绑定在0.0.0.0的端口而言,外部可以访问]
#③255.255.255.255 用人类的话说:“嘿,这屋子的所有人听着了!”
#④localhost  这个是域名,一般都是127.0.0.1,这种对应关系写在你的/etc/hosts里面

sudo docker start/stop/restart/rm  blabla #启动/停止/重启/删除 容器
sudo docker cp blabla:/app/file.txt .  # 把docker里面/app目录下的file.txt文件复制出来到现在所在的目录

sudo docker exec -it blabla /bin/bash #在启动的容器blabla中运行/bin/bash
sudo docker exec -it blabla /the/path/of/your/command

sudo docker commit blabla  repo:tag  #提交保存容器到一个新的镜像repo:tag

sudo docker login --username=vvvhkfhfkhdkfh registry.cn-shenzhen.aliyuncs.com #默认登陆阿里巴巴 https://cr.console.aliyun.com/repository/cn-shenzhen/errolyan/tts_tacotron/detail
docker push images_name:tag   #push 本地镜像到阿里巴巴仓库

#从阿里巴巴仓库拉取镜像
sudo docker pull registry.cn-shenzhen.aliyuncs.com/errolyan/tts_tacotron:[镜像版本号]

#将镜像推送到阿里巴巴仓库
sudo docker login --username=vvvhkfhfkhdkfh registry.cn-shenzhen.aliyuncs.com
sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/errolyan/tts_tacotron:[镜像版本号]
sudo docker push registry.cn-shenzhen.aliyuncs.com/errolyan/tts_tacotron:[镜像版本号]
sudo docker rmi  repo:tag #删除镜像

#容器的导出和导入
sudo docker export 
sudo docker import 

#镜像的导出和导入
[文件]
sudo docker save repo:tag > backup.tar
sudo docker load < backup.tar
[dockerhub]
sudo docker login
sudo docker push repo:tag
sudo docker pull repo:tag 

#常用组合命令
#停止所有docker容器
sudo docker kill $(sudo docker ps -q)
#删除所有docker容器
sudo docker rm $(sudo docker ps -aq)


ec2a2c8be2472a24fa4ae906884494cc.png
docker 工作流程

docker

你可能感兴趣的:(谈天说地)