常用命令
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要保证程序是前台运行
--简单的说就是: 容器本身就是后台程序,所以跑在容器中的程序需要保持前台运行