一、CentOS docker安装
安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
添加源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum -y install docker-ce
二、docker常用命令
1、基本命令
docker启动 systemctl start docker
docker关闭 systemctl stop docker
设置docker开机自启动 systemctl enable docker
查看docker版本信息 docker version
查看docker系统信息 docker info
查看当前正在运行的docker docker ps
2、镜像管理命令
查看所有镜像:docker images
IMAGE ID是镜像ID,每个镜像具有唯一ID
搜索镜像:docker search xxx,搜索名字为xxx的docker镜像
OFFICIAL表示nginx官网提供的镜像
拉取下载:docker pull xxx:latest,拉取名字为xxx并且版本最新的镜像
docker pull xxx:1.1.1,拉取名字为xxx并且版本为1.1.1的镜像
在下图中,看到最左侧的一行显示了ID,docker的镜像构建可以分层构建,左侧的ID可以理解为你下载的镜像所依赖的其他操作系统层、库层信息?
如果指导软件版本,那么可以直接拉取对应的版本镜像:
导出:docker save xxx > xxx.tar或者docker save xxx -o xxx.tar
导出的作用就是将镜像文件保存到本地,可以共享给其他人使用,此时,其他人就不用再去拉取这个镜像,可以导入后直接使用
导入:docker load < xxx.tar
删除:docker rmi xxx:version或者docker rmi 镜像ID
如果有容器再使用被删除的images时,可以使用docker rm -f 容器ID,先强制删除容器后再删除镜像
更改镜像名:docker tag xxx:version yyy:version
查看镜像创建历史:docker history xxx
3、容器管理命令
注意:1、可以直接使用docker run xxx:tag 命令去运行一个容器,但如果容器不执行任务时,运行后就会立即退出,可以在运行命令后面增加一个需要运行的命令,比如ping命令,那么容器不会立即退出
2、如果不使用-d参数设置为后台运行,那么就会在当前会话显示运行日志信息?
运行容器:docker run -d --name=xxx xxx:tag
-d表示后台运行 --name表示设置容器名称 xxx:tag表示想要运行的镜像名称
查看运行的容器:docker ps,docker ps -a
下图可以看到ps和ps -a的区别是:ps显示当前运行容器信息,ps -a显示当前和以前容器的运行信息
还可以看到当前容器的容器ID、镜像名称、命令、创建时间、状态、端口、容器名称(容器名称如果在启动时不设置会自动生成一个名称,容器名称在后续对容器进行操作时是一个很重要的角色)
查看容器中运行的进程:docker top xxx
xxx支持容器ID和容器名称
查看容器资源占用:docker stats xxx
xxx支持容器ID和容器名称
容器操作:docker start/restart/stop/kill xxx
stop 容器名称
start 容器名称
暂停/恢复容器:docker pause/unpause xxx
暂停容器后,可以使用docker logs -f xxx命令查看容器当前刷新的日志信息,暂停后会发现日志不再进行刷新
强制删除容器:docker rm -f xxx
docker rm xxx只能删除停止的容器,正在运行的容器如果想要删除可以使用-f参数
在容器中执行命令:docker exec -it xxx ls
场景:想要在容器里面运行一些命令,exec表示执行一个命令,-i表示使用交互式界面,-t表示terminal,xxx表示容器名称,后面的ls是想要执行的命令
第一行执行结果是容器的文件列表,第二个命令是当前主机的文件列表,两个不一样
如果想直接进入容器中,可以使用此命令:docker exec -it xxx bash(如果不支持bash可以更改为sh)
想要退出容器,使用exit命令退出
复制文件:docker cp xxx:/etc/hosts hosts
场景:从容器里面复制文件到宿主机,或者把主机的文件放到容器中(docker cp hosts xxx:/etc/hosts),复制中可能会由于文件权限或者正在使用出现无法复制的问题,可以自行排查无法复制原因
查看容器日志:docker logs -f xxx
查看容器或者镜像的元信息:docker inspect xxx
查看内容比较多,里面一般包含容器的基本信息、运行状态、cpu信息、网络信息等
格式化输出:docker inspect -f '{{.Id}}' xxx
查看元信息输出的为json格式,可以采用格式化输出去获取具体的信息:如
只获取Id信息:
查看容器内文件结构:docker diff xxx
三、其他知识
docker的工作目录 /etc/docker/
docker加速器配置:1、进入docker工作目录/etc/docker,2、vim daemon.json 3、在文件里面把阿里云镜像加速器的地址按以下格式写入到daemon.json文件中,保存文件 4、配置完成之后重启docker
{
"registry-mirrors":["https://s2nni631.mirror.aliyuncs.com"]
}