Docker常用命令
镜像相关指令
这些镜像存储在Docker宿主机的/var/lib/docker目录下
- docker images 查看当前镜像列表
- docker search 镜像名称 搜索镜像
- docker pull 镜像名称 下载镜像 如果后面没有加 tag,默认是下载latest版本, 指定版本:tag
- docker rmi 镜像名称/id 删除镜像
- docker rmi -f 镜像名称/id 强行删除镜像
- docker rmi ‘docker images -q’ 删除所有镜像
容器相关指令
- docker ps 查看所有运行中的容器
- docker ps -a 查看所有容器
- docker ps -l 查看最后一次运行的容器
- docker ps -f statys=exited 查看停止的容器
- docker run -i/t/v/d/p --name=容器名称 镜像名称:标签 /bin/bash 交互方式创建容器交互式创建成后会自动进入,退出后会停止当前容器
- docker run -i/t/v/d/p --name=容器名称 镜像名称:标签 守护方式创建容器守护式和交互式相反
- -i:标识容器
- -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端
- -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上
- -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)
- -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
- –name:为创建的容器命名, 必须是唯一的
- docker exec -it 容器名称/id /bin/bash 登陆守护式容器
- exit 退出当前容器
- docker stop 容器名/id 停止容器
- docker start 容器名称/id 启动容器
- docker inspect 容器名称/id 查看容器id
- docker inspect --format=’{{.NetworkSettings.IPAddress}}’ 容器名称/id 直接输出容器id
- docker rm 容器名称/id 删除容器
- docker rm -f 容器名称/id 强行删除容器
- docker logs -f 容器名/id 查看容器运行日志
文件拷贝
- docker cp data/readme.txt centos01:/root/mydata/ 从宿主拷贝文件到容器
- docker cp centos01:/root/mydata/readme.txt /root/data 从容器拷贝文件到宿主
目录挂载
- docker run -di -v /usr/local/myhtml:/usr/local/myhtml --privileged=true --name=mycentos3 centos:7 根据centos:7创建一个名字是mycentos3的容器,并且使用宿主的/usr/local/myhtml文件和容器的/usr/local/myhtml映射,–privileged=true 代表的是多级文件夹下的权限访问问题
数据卷管理
- docker volume create html 创建一个html的数据卷
- docker volume inspect html 显示html或多个指定数据卷的详细信息
- docker volume ls 查看所有的数据卷
- docker volume prune 删除所有未使用的数据卷
- docker volume rm html 删除html或多个指定数据卷
- docker run -id --name=my-nginx -p 8888:80 -v html:/usr/share/nginx/html nginx 根据nginx镜像创建一个名为my-nginx的容器,挂载数据卷html,此时修改数据卷html目录的文件可以影响到容器
- docker run --name my-nginx -p 8888:80 -v html:/usr/share/nginx/html -v $PWD/nginx.conf:/etc/nginx/nginx.conf --privileged=true -id nginx
- 根据nginx镜像创建一个名为my-nginx的容器
- 端口映射8888->80,挂载两个数据卷
- 一个是html目录,一个是$PWD/nginx.conf文件
- $PWD代表当前目录
- –privileged表示授予本地目录的访问权限
- -d表示后台运行
网络指令
- docker network create -d bridge my-net 创建一个名为my-net的网卡
- docker network ls 查看所有网卡
- docker network inspect my-net 查看my-net网卡的详细信息
- docker network connect my-net my-nginx 将正在运行的my-nginx容器连接my-net网卡
- docker run -it --rm --name=mycentos --network=my-net centos:7 /bin/bash 在创建名为mycentos的容器时,连接一个my-net网卡,
- –rm 容器退出时,自动删除容器
迁移和备份
- docker commit my-nginx my-nginx-temp 将名为my-nginx的容器保存为名为my-nginx-temp的镜像
- docker save -o my-nginx-temp.tar my-nginx-temp 将名为my-nginx-temp的镜像保存为tar文件
- docker load -i my-nginx-temp.tar 将tar文件恢复成镜像