开始

安装

sudo apt-get update
sudo apt-get install docker.io

查看Docker信息、版本

docker info
docker version

更换国内源

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://187b68ff.m.daocloud.io

测试与Docker Hub的连接

docker run hello-world
结果:
Hello from Docker …… 说明成功

登陆退出

docker login -u topzyh -p 密码
docker logout

DockerUI安装,安装完成后访问 IP:9000

docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker

镜像

搜索镜像

docker search Ubuntu

检查 official 为 [OK] ,表示官方镜像

下载镜像

docker pull ubuntu:16.10
docker pull learn/tutorial

上传镜像到docker平台(需要登陆docker.io)

docker push <镜像名或ID>[:TAG]

查看所有镜像

docker images

将镜像保存成tar文件

docker save -o my_ubuntu_v3.tar <镜像名或ID>

从tar文件中创建镜像

docker import  my_ubuntu_v3.tar <镜像名或ID>

删除镜像

docker rmi <镜像名或ID>
docker rmi (docker images | grep none | awk '{print3}' | sort -r) //删除所有镜像

容器生命周期

通过镜像创建一个新的容器并进入

docker run -it ubuntu
  • -d: 后台运行容器,并返回容器ID;
  • -it: 会打开一个 shell与容器交互, exit 从容器中退出
  • –name=”nginx-lb”: 为容器指定一个名称;
  • –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  • –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
  • -h “mars”: 指定容器的hostname;
  • -e username=”ritchie”: 设置环境变量;
  • –env-file=[]: 从指定文件读入环境变量;
  • –cpuset=”0-2″ or –cpuset=”0,1,2″: 绑定容器到指定CPU运行;
  • -m :设置容器使用内存最大值;
  • –net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
  • –link=[]: 添加链接到另一个容器;
  • –expose=[]: 开放一个端口或一组端口;

间接运行容器

docker run learn/tutorial echo "hello word" //hello world
docker run learn/tutorial apt-get install -y ping //安装新程序
docker run lean/ping ping www.google.com //运行新容器

创建一个新的容器但不启动它

docker create --name <新名称>  <原名称>  

启动、停止、杀死、重启 容器

docker stop <容器名orID>
docker start <容器名orID>
docker kill <容器名orID>
docker restart <容器名orID>

删除容器

docker rm <容器名orID>
docker rm $(docker ps -a -q) //删除所有

在运行的容器中执行命令

docker exec -it <容器名orID> /bin/bash

拷贝服务器中文件到容器内

docker cp /etc/apt/sources.list d9352a4fc865:/etc/apt/sources.list

把容器保存到镜像

docker commit -m "my apache" a404c6c174a2  mymysql
  • -a :提交的镜像作者;
  • -c :使用Dockerfile指令来创建镜像;
  • -m :提交时的说明文字;
  • -p :在commit时,将容器暂停。

容器操作

检查运行中的容器

docker ps 可以查看所有正在运行中的容器列表
docker ps -a为查看所有的容器,包括已经停止的。

可以查看更详细的关于某一个容器的信息

docker inspect <容器名orID>

查看容器中运行的进程信息

docker top <容器名orID>

列出指定的容器的端口映射

docker port <容器名orID>