Docker常用命令

#搜索镜像

#在官方的 docker 仓库中搜索指定名称的 docker 镜像,也会有很多镜像

docker search centos:7.3.1611 #带指定版本
docker search centos #不带版本号默认latest
#下载镜像

#从 docker 仓库将镜像下载到本地,命令格式如下:

docker pull nginx

docker pull mysql
#查看本地下载的镜像

docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
nginx        latest    605c77e624dd   2 months ago   141MB
mysql        latest    3218b38490ce   2 months ago   516MB

#REPOSITORY   镜像所属的仓库名称
#TAG          镜像版本号(标识符),默认为 latest
#IMAGE ID     镜像唯一 ID 标示
#CREATED      镜像创建时间
#SIZE         镜像的大小 12345678910111213
#镜像导出

#可以将镜像导出到服务器上为一个压缩的文件

#方法一:
docker save nginx -o nginx.tar.gz
docker save mysql -o mysql.tar.gz

#方法二:
docker save nginx > nginx.tar.gz
docker save mysql > mysql.tar.gz
#镜像删除

docker rmi nginx
#镜像导入

docker load < nginx.tar.gz
docker load < mysql.tar.gz
#查看镜像

docker images
#显示所有容器

docker ps -a
#删除运行中的容器

docker rm -f 256150320c
#端口映射

-d 后台运行
#随机端口映射
docker run -P nginx 
#前台启动并随机映射本地端口到容器的80前台启动的会话窗口无法进行其他操作,除非退出,但是退出后容器也会退出

#指定端口映射
方式1:本地端口81映射到容器的80端口
docker run -p 81:80 --name nginx-test nginx
方式2:本地IP:本地端口:容器端口
docker run -p 192.168.11.11:81:80 --name nginx-test1 nginx
方式3:本地IP:本地随机端口:容器端口
docker run -p 192.168.11.11::80 --name nginx-test2 nginx
#查看容器已映射的端口

docker port nginx-test
#自定义容器名称

docker run -it --name nginx-test nginx
#后台启动容器

docker run -d --name nginx-test nginx
#创建并进入容器

docker run -it --name nginx-test1 nginx /bin/sh
#容器的启动和关闭

docker stop 1651561asd1   #停止容器
docker start 36594asd59   #启动容器
#进入到正在运行的容器

docker exec -it e4ef9a1b1c4b bash
#批量关闭正在运行的容器

docker stop `docker ps -a -q`
docker stio $(docker ps -a -q)
#批量强制关闭正在运行的容器

docker kill $(docker ps -a -q)
#拷贝容器中的文件到宿主机

docker cp nginx-test:/etc/hosts /home/
#给容器传递环境变量

#有一些容器启动需要使用环境变量比如:mysql
docker run -it -p -d 3306:3306 --env "MYSQL_ROOT_PASSWORD=123456" --name mysql mysql
#查看容器日志

docker logs b17addd6feb9

#进入容器后 nignx的配置文件在 /etc/nginx中

#使用vim,需要 apt-get update, apt-get install vim