docker 学习(2)
docker容器中安装vim
ubuntu 中默认未装vim,docker run ubuntu vim
出现:
container_linux.go:247: starting container process caused "exec: \"vim\": executable file not found in $PATH"
docker: Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"exec: \\\"vim\\\": executable file not found in $PATH\"\n".
我的做法是启动一个镜像,像ubuntu一样执行
sudo docker run -t -i ubuntu /bin/bash
root@0b2616b0e5a8:/# 这一串就是容器ID
首先更新源 apt-get update
然后安装vim apt-get install vim 也可以安装其他软件
最后退出 exit或者ctrl-d
现在我们的容器已经被我们改变了,使用 docker commit
命令来提交更新后的副本,返回新的镜像号
$ sudo docker commit
ubuntu/vim0b2616b0e5a8
4f177bd27a9ff0f6dc2a830403925b5360bfe0b93d476f7fc3231110e7f71b1c
使用 docker images
来查看新创建的镜像,之后就可以使用新的镜像来启动容器,这时候就可以在容器中使用vim了
可以利用 docker start
命令,直接将一个已经终止的容器启动运行。
可以使用 docker stop
来终止一个运行中的容器。
下面的命令输出一个 “Hello World”,之后终止容器。
$ sudo docker run ubuntu /bin/echo 'Hello world'
Hello world
这跟在本地直接执行 /bin/echo 'hello world'
几乎感觉不出任何区别。
下面的命令则启动一个 bash 终端,允许用户进行交互。
$ sudo docker run -t -i ubuntu /bin/bash
root@af8bae53bdd3:/#
其中,-t
选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上, -i
则让容器的标准输入保持打开
Docker提供了attach命令来进入Docker容器。
然后我们使用docker ps查看到该容器信息,接下来就使用docker attach进入该容器
docker attach 44fc0f0582d9
docker import 和docker export 导入、导出容器
,
如果要删除一个运行中的容器,可以添加 -f
参数。也可以先stop再rmdocker rmi 移除镜像在删除镜像,注意之前要先用 docker rm
删掉依赖于这个镜像的所有容器。
官方建议的批量删除停止容器使用docker rm $(sudo docker ps -a -q)
docker ps -a -q
的意思是列出所有容器的数字id
千万不要用 docker rm -f $(sudo docker ps -a -q)
,会删除全部容器的,不过我们练习的时候可以用,方便
参考博客 :http://blog.csdn.net/yxgxy270187133/article/details/48492937