开始
安装
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>