目录
GitHub Docker 技术文档:https://github.com/hangyan/docker-resources/blob/master/README_zh.md
如果不想每次运行Docker都使用sudo权限,可以把用户加到Docker组中。
例如: 我的用户名为 user,则添加命令如下;
sudo usermod -aG docker user
重启后生效,再次执行Docker指令,直接输入docker xx ,不需要加 sudo 了。
使用docker ps 下面的命令查看 镜像跟容器
docker ps | awk '{print $2, $NF}'
Docker 三大基础组件
仓库(Repository)
镜像(Image)
容器(Container)
查询
查看正在运行的容器和所有运行的容器
docker ps
docker ps -a
查看镜像
docker images
docker images -a
停止
停止容器与停止所有正在运行的容器
docker stop 想要停止的容器ID
docker stop $(sudo docker ps -aq )
删除
删除停止运行的容器与所有停止运行的容器
docker rm 想要停止的容器ID
docker rm $(docker ps -a -q) # 删除所有停止运行的容器(使用须小心)。用到了Docker指令嵌套功能
删除镜像
docker rmi 想要停止的镜像ID
docker rmi $(sudo docker images -a -q)
查询镜像
docke search lnmp
下载镜像
docker pull idiswy/lnmp
运行镜像
docker run 命令是用来创建运行Docker容器。它至少需要两个参数,一个是镜像名,一个是容器中需要运行的命令
docker run idiswy/lnmp echo "Hello World"
修改容器
在 learn/tutorial 容器中安装一个ping工具,由于镜像是ubuntu操作系统构建的,所以可以通过在容器中运行 apt-get install -y ping, 一旦ping工具安装完毕,容器会立刻停止运行,但容器中安装的软件包会一直保留。
docker run learn/tutorial apt-get install -y ping
创建新镜像
上面修改容器是已经安装了 ping程序包,想要保存这个变更,以便于以后启动容器时不需要重复安装ping程序包。Docker支持在原有镜像基础上,只提交增量修改部分,形成一个新镜像。以后使用新镜像为模板启动容器,容器中就会存在ping软件包,于是就不需要重复安装了。
首先用docker ps -l 找到安装过ping包的容器ID号,然后把这个容器提交为新镜像,镜像名为 learn/ping , 使用 docker commit 把容器提交为新镜像
docker ps -l
docker commit c61223a01f49 learn/ping
使用新镜像
上面基于容器生成了新的镜像,这个镜像包含ping软件包,这个新镜像可以运行在任何装有Docker引擎的机器上
测试刚才提交的新镜像中安装的ping工具 ping Docker网站
docker run learn/ping ping www.docker.com
查询容器信息
用 docker ps 查看当前运行的容器, 使用docker inspect 可以看到单个容器的详细信息
可以使用容器ID来指定容器,也可以只是用容器的前3 ~ 4 个字符来指定
docker inspect 36964c6571ba
docker inspect 3696