镜像加速

https://cr.console.aliyun.com/?spm=a2c4g.60750.0.0.19e6296aU86EO3

阿里云有国内的镜像加速节点,登陆完添加节点即可。

镜像相关

拉取镜像

命令:docker pull 镜像名称

不指定版本默认是latest,即最新版本

docker pull tomcat:8.0

查看镜像

命令:docker imagesdocker 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