sudo docker pull ubuntu /*下载Ubuntu最新镜像*/
sudo docker pull ubuntu:14.04 /*下载Ubuntu14.04版镜像*/
sudo docker run -it ubuntu /bin/bash /*运行ubuntu的bash应用*/
sudo docker images /*列出本地主机里的镜像信息*/
sudo docker inspect ID /*获取该镜像的详细信息*/
sudo docker inspect --f {{"Architecture"}} ID /*获取Architecture信息*/
搜索镜像
sudo docker search ITEM
--automated=false /*仅显示自动创建的镜像*/
--no-trunc=false /*输出信息不截断显示*/
-s,--stars=0 /*仅显示评价为指定星级以上的镜像*/
删除镜像
sudo docker rmi ID
强制删除
sudo docker rmi -f ID
删除容器(-f 强制删除)
docker rm ID
基于已有的镜像的容器创建
sudo docker commit ‘’‘ ’‘’ 容器ID
-a, --auther="" 作者信息
-m, --message="" 提交消息
-p, --pause=true 提交时暂停容器运行
基于本地模板导入
sudo cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:14.04
存出和载入镜像
存出
sudo docker save o ubuntu_14.04.tar ubuntu:14.04
载入
sudo docker load -input ubuntu_14.04.tar
或
sudo docker load < ubuntu_14.04.tar
上传镜像
sudo docker tag test:latest user/test:latest
sudo docker push user/test:latest
查看docker进程
docker ps
-a 所有进程
运行镜像
docker run -t -i -d ubuntu
-t - 分配一个(伪)tty (link is external)
-i - 交互模式 (so we can interact with it)
-d 以守护状态运行
终止容器
docker stop ID
-a -q 可以看到处于中止状态的容器ID信息
重启容器
docker restart ID
开始容器
docker start ID
使用 docker run -idt ubuntu后
由于-d会使得容器在后台运行,想要回到容器得使用(但是如果开多个终端,每个终端链接的都是同步的)
docker attach NAMES
比attach更好的一个是exec
docker exec -ti ID /bin/bash
导入和导出容器
导出
docker export CONTAINER(命令格式)
docker export ID >test_for_run.tar
导入
cat test_for_run.tar | docker import - test/ubuntu:v1.0
数据管理
下面使用training/webapp镜像创建一个web容器,并创建一个数据卷挂载到容器的/webapp目录
docker run -d -p --name web -v /webapp training/webapp python app.py
挂载一个主机目录作为数据卷
使用-v挂载一个本地的已有的目录到容器中去作为数据卷
加载主机的/src/webapp 目录到/opt/webapp目录
docker run -d -p --name web --v /src/webapp:/opt/webapp training/webapp
端口映射实现访问容器
当使用-p标记时,docker会随机映射一个49000~49900的端口至容器的内部开放的网络端口
映射所有的接口地址
使用hostport:containerPort格式将本地的5000端口映射到容器的5000端口
docker run -d -p 5000:5000 training/webapp python app.py
映射到指定地址的指定端口
docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py
映射到指定地址的任意端口
docker run -d -p 127.0.0.1::5000 training/webapp python app.py
查看映射端口配置
docker port NAMES 5000