Docker
主要是记录一下自己在Ubuntu16.04服务器上使用Docker跑别人程序的过程,同时有一些常用命令供参考。
Docker简介
Docker很多人都用过,老师上课讲解时提过一嘴,它是用于项目快速部署分发的一种容器虚拟化技术。
Docker命令
# 创建镜像
sudo docker search ubuntu
sudo docker pull ubuntu:16.04
sudo docker images
# 修改并提交
sudo docker run -t -i ubuntu:16.04 /bin/bash
sudo docker commit -m "added hello" 00f9d71f3e9a(ContainerID/root@ContainerID) ner/ihp:v1(REPOSITORY:TAG)
# 查看当前镜像
sudo docker images
# 使用Dockerfile
vim Dockerfile
sudo docker build -t="ner/ihp:v1" .
sudo docker images
# 如果失败就找到之前的ContainerID,然后commit
# 修改镜像名称
sudo docker tag 00f9d71f3e9a ner/ihp:v2
# 修改容器名称
sudo docker rename ContainerID nerContainerID
# 删除
sudo docker ps
sudo docker rm NAME/ContainerID
sudo docker rmi ner/ihp:v2
# 删除重复镜像tag
sudo docker rmi 镜像名:tag名
# 运行
sudo docker run ner/ihp:v1 /bin/cat /hello_build.txt
# 交互式运行
sudo docker run -t -i ner/ihp:v1 /bin/cat /hello_build.txt
# 启动终止容器
sudo docker start ContainerID
# 后台运行
sudo docker run -d ner/ihp:v1 /bin/cat /hello_build.txt
sudo docker ps -a
sudo docker exec -i -t ContainerID /bin/bash
# 终止运行
sudo docker stop ContainerID
# 传输文件
sudo docker cp host_path containerID:container_path
sudo docker cp containerID:container_path host_path
ps:
使用Dockerfile构建镜像的过程中我们如果中间失败,则会产生一个<none>
,如果需要这个文件就需要使用docker commit
赋予它另外一个id;如果成功并且在build -t中使用了原来的名字,那么原来的镜像将被覆盖,这里-t就是指定的id
退出容器
- 正常退出
exit
- 正常退出不关闭容器
Ctrl+P+Q
参考