Docker命令速查

Docker概念

镜像 :只读的模板

容器 :负责应用程序的运行。是从镜像创建的运行实例,互相隔离,安全的平台。

镜像只读 :容器在启动时创建一层可写层作为最上层。(类似overlayfs)

仓库 :集中存放镜像的地方,和github类似。https://hub.docker.com/

Docker 安装

sudo apt-get install docker.io
sudo gpasswd -a your_user_name docker               #加入用户组
sudo service docker restart
newgrp - docker             #使用新用户组,或者也可以断开终端重连生效
docker version              #查看docker版本信息

docker下各文件默认存放在/var/lib/docker下

du -h --max-depth=1 /var/lib/docker                #查看docker目录大小

Docker镜像操作

docker search licheepi               #搜索镜像
docker pull zepan/licheepi           #下载镜像
docker run zepan/licheepi apt-get install -y xxx             #在镜像中执行命令,安装某软件
docker commit -m="install something" -a="zepan"  container_id zepan/licheepi
docker login
docker push  zepan/licheepi

Docker容器操作

运行交互式的容器

docker run -i -t learn/tutorial /bin/bash        //开启一个交互式虚拟终端
        -i    交互式
        -t     虚拟终端
        -d    后台
        -P    端口映射

docker port  id    //查看端口映射情况

docker inspect  id    //查看容器详细状态

启动容器(后台模式)

docker run -d learn/tutorial /bin/sh -c "while true; do echo hello world; sleep 1; done"
返回容器id:350807154a3dd17309b23bb9a9a9897dd3fc91667a7d176aca42f390808e3019

通过ps查看正在运行的容器实例

zepan@ubuntu:~$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
350807154a3d        learn/tutorial      "/bin/sh -c 'while..."   31 seconds ago      Up 30 seconds                           blissful_lamport
docker ps -l    //查看最后运行的容器
docker ps -a    //查看所有容器

查看对应容器的输出:

docker logs 3508 或 blissful_lamport
docker logs -f    xxxx        //类似tail -f

停止/开始/重启容器:

docker stop 3508        //通过发送信号方式停止
docker kill 3508           //kill方式停止
docker start 3508        //start -i  交互式执行
docker restart 3508

删除容器

docker remove 3508
docker rm `docker ps -a -q`        //删除所有容器

主机容器互拷数据

docker cp id:/xxx/xx   /yyy/yy/
docker cp  /yyy/yy/    id:/xxx/xx

开启容器的ssh

docker run -d -p 6666:22 zepan/licheepi /usr/sbin/sshd -D