docke 和docker-compose常用命令

常用命令

docker container ls 列出所有正在运行的容器
docker exec -id docker_id bash 命令行方式进入docker
docker-compose ps 列出当前docker-compose的镜像文件

1,普通dockers

编译命令

docker build . 当前文件编译,依赖Docker_file

sudo docker build . -t containerName_version
编译的时候 containerName_version为tag

启动命令

sudo docker run --net=host -t -i 直接
启动的时候 --net=host 为指定与宿主机共享网卡
后台运行 -d
直接进入container的bash -i -t

docker run --net=host --name nebula_sniffer -d n   ebula_sniffer:20181129

--name 说明容器名字 -d 后台运行
最后是指定容器,也可以用容器的ID

--rm 启动完即可删除

docker-compose
docker-compose exec containerName bash

docker导出

1,将当前容器保存成新的一个镜像
docker commit nebula containerName

dcoker export 容器id > containerName
docker  ps  查容器id

导出镜像    
$ docker save alpine | gzip > alpine-latest.tar.gz
$ docker load -i alpine-latest.tar.gz

docker commit containerName containerName:version

2,用dockers-compose管理的dockers

完整命令

docker-compose build 用docker-compose进行构建镜像
docker-compose down 停止并且删除当前docker-compose运行的容器文件
docker-compose build 用docker-compose进行构建镜像
docker-compose up -d 启动当前docker-compose所有制定的容器

3,PS

1,dockersfile中的CMD不应该有执行后台程序的命令,比如你再前台执行shell,他会在shell执行结束就结束容器的运行,所以那条CMD要保证程序是前台运行        
    --简单的说就是: 容器本身就是后台程序,所以跑在容器中的程序需要保持前台运行

你可能感兴趣的:(docker)