上一篇文章写的是Docker的安装和启动,启动了Docker我们可以进行镜像的安装了,镜像就是包含各种应用的操作系统。
一、镜像相关命令
1.搜索镜像
命令行的方式: docker search python #搜索关于python的镜像 在网站搜索: https://hub.docker.com/ #一般在网站上搜索方便看,搜索好之后再安装
搜索关于带python的Docker
2.下载镜像
docker pull centos:centos7.7.1908 #指定下载centos7.7.1908版本的 docker pull centos #没有指定版本就下载最新版本
3.查看下载的镜像
docker images
REPOSITORY:镜像名称
TAG:镜像标签
IMAGE ID:镜像ID
CREATED:镜像的创建日期
SIZE:镜像大小
这些镜像都是存储在Docker宿主机的/var/lib/docker目录下
4.删除镜像:
docker rmi id号 #根据id号来删除镜像
删除所有镜像
docker rmi 'docker images -q'
二、容器相关命令
1.启动容器(基于image启动)
创建容器命令:docker run
创建容器常用的参数说明:
-i:表示运行容器 -t:表示容器启动后会进入其命令行。加入这两个参数后(/bin/bash),容器创建就能登录进去。即分配一个伪终端。 --name :为创建的容器命名。 -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。 -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t两个参数,创建后就会自动进去容器)。 -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
注意:docker run 和 docker exec的差异
docker run :根据镜像创建一个容器并运行一个命令,操作的对象是 镜像; #一般和-id使用 docker exec :进入在运行的容器中执行命令,操作的对象是 容器 #一般和-it使用
交互式方式创建容器:(以命令行模式进入容器)
docker run -it --name=容器名称 镜像名称:标签 /bin/bash #/bin/bash放在镜像后的是命令,这里是希望有个交互的shell
创建之后就进入容器,可以执行命令行,该模式创建的容器如果退出了,需要重新 docker start 容器名 才能开启容器
退出当前容器
exit
守护式方式创建容器:(在后台运行)
docker run -id --name=容器别名 镜像名称:镜像版本
创建的容器会在后台一直运行,不会退出
示例:启动centos7
docker run -id --name mycentos7 centos:centos7.7.1908
2.进入到容器内部:(先run启动一个容器,然后再用exec进入容器)
docker exec -it 容器名称(或者容器ID) /bin/bash
进入容器有四种方法:1.acctch 2.exec 3.nsenter 4.SSH (最常用的就是exec)
nsenter和exec之间的区别:
1.exec是docker自带的命令,nsenter是linux提供的命令
2.exec相当于在容器内执行一个命令,而nsenter是仅仅进入容器之中而已
退出容器:exit
3.停止与启动已有的容器
docker stop 容器id/名字 #停止
docker start 容器id/名字 #启动已经存在的容器
4.查看容器
查看正在运行的容器
docker ps
查看所有容器
docker ps -a
查看最后一次运行的容器
docker ps -l
查看停止的容器
docker ps -f status=exited
5.文件拷贝(重点******)
向里拷贝(从宿主机--->>容器)
docker cp 需要拷贝的文件或目录 容器名称:容器目录
示例:宿主机下的aa文件夹拷贝到容器内的home目录下 (注意:是在宿主机环境下运行)
docker cp aa mycentos7:/home
向外拷贝(从容器内--->> 宿主机) (注意:也是在宿主机里面执行下面命令)
docker cp 容器名称:要拷贝的容器目录 要拷贝到宿主机的文件或目录
示例:容器内的/home/cc.txt拷贝到/home目录下,注意路径书写正确
6.目录挂载(重点******)
我们可以在创建容器的时候,将宿主机的目录与容器内的目录进行映射,这样我们就可以通过修改宿主机某个目录的文件从而影响容器内的文件。在宿主机环境下运行
创建容器 添加-v参数 后边为 宿主机目录:容器目录,例如: (-v是做目录映射),不管哪边修改都会互相影响
docker run -id -v /home/test:/home/test --name=mycentos3 centos:centos7.7.1908
进入容器centos3,有映射的文件/home/test/a
7.查看容器ip地址
docker inspect 容器名字/id #会出现一大堆容器信息
可以直接查找ip地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称(容器ID)
8.删除容器(必须先stop容器才能删除)
docker rm 容器名称(容器ID)