docker常用命令

镜像操作

docker search  镜像名                     #从docker官方仓库搜索镜像
docker pull centos                       #下载centos镜像
docker save centos > /opt/centos.tar.gz  #镜像导出
docker load < /opt/centos.tar.gz         #镜像导入
docker images                            #查看本机存在的镜像

【示例】

docker search centos
docker pull centos:6   ### 如果不指定tag,默认下载latest

# 导出镜像
docker save -o tensorflow-serving-devel.tar boxfish/tensorflow-serving-devel

# 导入镜像
docker load -i tensorflow-serving-devel.tar

注:

镜像pull失败,是因为网络原因,可以使用代理上网,比如使用shadowsocks(有命令行客户端)

容器操作

docker run -i -t centos:6 /bin/bash

-i:开启交互式shell
-t:为容器分配一个伪tty终端
-d:以守护进程方式运行docker容器
--name:
centos:指定镜像的名字
docker start 5eb5ee832f57  ##启动刚刚退出的容器,也可以使用NAME
进入容器
docker attach 77079090e085
docker inspect --format "{{ .State.Pid }}" d09969389b95
nsenter --target 43964 --mount --uts --ipc --net --pid
编写脚本,进入容器
[root@vir ~]# cat docker_in.sh
#!/bin/bash

# Use nsenter to access docker

docker_in(){
   NAME_ID=$1
   PID=$(docker inspect -f "{{ .State.Pid }}" $NAME_ID)
   nsenter -t $PID -m -u -i -n -p
}
docker_in $1

提交镜像

docker commit -m "centos6_http_server" d09969389b95 yjj/httpd:v1

执行命令

docker exec 容器id sh -c "echo  haha"