Docker日常命令

json

* 容器到宿主机
docker cp testtomcat:/usr/local/tomcat/webapps/test/js/test.js /opt

* 宿主机到容器
docker cp /opt/test.js testtomcat:/usr/local/tomcat/webapps/test/js
  • 查看本地所有镜像:docker images;
  • 查看本地所有容器:docker ps -a / 查看本地所有运行中容器:docker ps;
  • 拉取镜像:docker pull imageName:tag;
  • 删除镜像:docker rmi imageId;
  • 为镜像打标签:docker tag imageName username/repository:tag;
  • 将镜像推送到镜像仓库:docker push username/repository:tag;
  • 启动容器:docker start containerName/containerId;
  • 进入容器:docker exec -it containerId /bin/bash;
  • 关闭容器:docker stop containerId;
  • 删除容器:docker rm containerId;
  • 启动镜像:docker run [参数…] imageName:tag/imageId,常用参数如下:

json

-d              //后台运行
-it             //以交互的方式运行
-p port1:port2  //将容器的port2端口映射到宿主机的port1端口
-v dir1:dir2    //将宿主机的dir1目录挂载到容器的dir2目录下
--name          //指定启动容器的名字
-e[...]         //指定容器中的环境变量

json

* docker export $container_id > 容器快照名
如:docker export 02jg992hglshg9thg9 > centos.tar

* cat centos.tar | docker import - my/centos:v888
  • 镜像保存/载入:docker load/docker save;

    将一个镜像导出为文件,再使用docker load命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。

  • 容器导入/导出:docker import/docker export;

    将一个容器导出为文件,再使用docker import命令将容器导入成为一个新的镜像,但是相比docker save命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。

  • docker run命令使用restart参数,如下:

json

docker run -dit --restart=always ******
  • 映射多个端口,在run新容器时,使用多个-p参数即可,如:

json

docker run -dit --name test -p 8888:80 -p 13306:3306 ubuntu:latest /bin/bash
此命令即映射80端口和3306到宿主机的888813306端口