镜像加速
https://cr.console.aliyun.com/?spm=a2c4g.60750.0.0.19e6296aU86EO3
阿里云有国内的镜像加速节点,登陆完添加节点即可。
镜像相关
拉取镜像
命令:docker pull 镜像名称
不指定版本默认是latest,即最新版本
如docker pull tomcat:8.0
查看镜像
命令:docker images
或 docker image ls
docker images -q 镜像名
:返回这个镜像的所有版本的id,不加镜像名则返回整个本地仓库的所有镜像
删除镜像
docker image rm 镜像名:版本(或者id)
:非强制删除,若对应镜像的容器正在运行,则无法删除
docker image rm -f 镜像名:版本(或者id)
:强制删除,无论容器是否在运行
docker image rm -f $(docker image -q)
:删库跑路🌚
容器相关
运行容器
docker run -d --name tomcat01 -p 8081:8080 tomcat:8.0
-d
:作为守护进程后台启动
--name
:指定名字(唯一)
-p
:宿主机和容器的端口映射,在这里是将宿主机的8081端口映射容器的8080端口,通过127.0.0.1:8081即可访问tomcat服务了。
tomcat:8.0
:指定容器镜像
查看容器
docker ps
:查看所有正在运行的容器
docker ps -a
:查看所有容器(包括关闭的暂停的)
docker ps -q
:以id方式查看所有正在运行容器
停止|开启|重启|暂停|恢复容器
docker stop 容器名字或id
:停止
docker start 容器名字或id
:开启
docker restart 容器名字或id
:重启
docker pause|unpause 容器名字或id
:暂停|恢复容器
删除容器
docker rm 容器名字或id
:删除已经停止运行的容器
docker rm -f 容器名字或id
:强制删除容器
查看容器内部日志
docker logs 容器名字或id
:查看日志输出,加参数-f
实时更新
与容器交互
docker exec -it 容器名字或id bash
:进入容器所在的os进行交互,exit
退出
容器与宿主机拷贝文件
docker cp 容器名字或id:目录 宿主机目录
:拷贝文件,写在前面的目录文件拷贝到后面的
如docker cp tomcat01:/usr/local/tomcat /root/cp
,将容器的tomcat目录复制到主机cp目录下
查看容器内进程
docker top 容器名字或id
查看容器细节
docker inspect 容器名字或id
容器数据卷
数据卷就是指定宿主机和容器的目录进行双向映射,就可以通过修改宿主机或容器的文件进行互相影响。
- 配置文件需要频繁修改
- 容器内部的数据需要备份
- 删除容器不希望删除数据
以上场景大概率需要使用数据卷。
数据卷只能在docker容器第一次启动时指定。
-
docker run -v /root/aaa:/usr/local/tomcat/webapps tomcat:8.0
,这样便实现了宿主机的aaa目录和容器内的webapps目录的双向映射,在任意一边目录下任意创建文件,另一边都会进行同步。为了保持同步,容器对应的目录下会强制同步成宿主机目录,也就是说webapps下会清空aaa目录下不存在的文件目录,只保留和aaa目录一样的文件目录。
-
docker run -v abc:/usr/local/tomcat/webapps tomcat:8.0
,别名设置数据卷,这种方式不会清空webapps下的目录,且目录默认创建在/var/lib/docker/volumes/
下。
容器打包成镜像
docker commit -m "messgae" -a "author" 容器名字或id 镜像名:版本
容器备份与恢复
备份如:docker save tomcat:8.0 -o tomcat-8.0.tar
恢复如:docker load -i tomcat-8.0.tar