Tops博客

Docker笔记

开始



安装

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 https://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 '{print $3}' 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>

评论