最近使用了docker,像是发现了新大陆。。。真是简洁好用的东西,为啥原来没发现。
docker的安装不再赘述,在此记录一下常用的命令,以便于将来查询。
查看docker容器版本 ---
docker version
查看docker容器信息 ---
docker info
列出本地docker镜像 ---
docker images (加 -a 列出所有)
下载镜像 ---
docker pull [镜像名]:[tag] (tag标签,不加:[tag] 默认下载最新版本)
删除单个镜像 ---
docker rmi [镜像名]:[tag]
强制删除单个镜像 ---
docker rmi -f [镜像名] (针对基于镜像有运行的容器进程)
删除多个镜像 ---
docker rmi -f [镜像名1] [镜像名2] [镜像名3] (不同镜像间以空格间隔)
删除本地全部镜像 ---
docker rmi -f $(docker images -q)
根据镜像创建一个容器 ---
docker run -it [镜像名] /bin/bash
创建容器并在后台运行(加端口映射、路径映射) ---
docker run -itd -p [主机端口]:[容器端口] -v [主机的目录]:[容器的目录] --name [容器名] [镜像名] /bin/bash
进入容器(退出容器:exit) ---
docker exec -it [容器名/容器ID] /bin/bash
查看所有容器 ---
docker ps -a
停止运行中的容器 ---
docker stop redis
删除一个已停止的容器 ---
docker rm redis
删除一个运行中的容器 ---
docker rm -f redis
将容器中的文件copy至本地路径 ---
docker cp [容器名]:[容器路径] [本地路径]
将主机文件copy至容器 ---
docker cp [本地路径] [容器名]:[容器路径]
获取docker中所有容器名称和地址
docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)
设置开机自启动
docker update --restart=always [容器ID]
还有两个命令使用前一定要慎重慎重慎重!!!
清除未被使用的镜像 --- :docker image prune -a
清除docker缓存、所有停止的容器、所有未被使用的网络、未创建容器的镜像 ... --- :docker system prune --volumes
容器打包成镜像、加载镜像:
容器打包成镜像:
docker commit -a [作者] -m [备注] [容器id] [容器名称]:[tag]
例:docker commit -a "zsh" -m "create new" 0e0d8117a1a4 php:7.2
镜像打包:
docker save [镜像id] -o [镜像包名称].tar
例:docker save 2c1d36b4507c -o php-beetle.tar
镜像加载:
docker load -i [镜像包名称].tar
例:docker load -i php-beetle.tar
镜像重命名
docker tag [镜像id] [镜像名]:[tag]
docker tag 7f0256c4d6a6 php-beetle:7.2
启动容器 --link连接php容器
docker run -itd --name nginx-api -p 8000:80 -v /home/prod/www:/usr/share/nginx/html -v /home/prod/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/prod/nginx/conf.d:/etc/nginx/conf.d -v /home/prod/php/logs:/usr/local/var/log --link 2f68d4a9bdc3:php --restart=always d54b210249c2