Docker之镜像与容器
1. 镜像与容器联系和存储驱动
1. 配置国内镜像仓库
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],  加速器
"insecure-registries":["172.168.1.194"]  信任私有库
}
2. 镜像与容器联系
镜像不是一个单一的文件,而是多层构成。我们可以通过docker history ID/name查看镜像各层内容及大小。镜像默认存储在/var/lib/docker/<storage-driver>.
查看镜像多层内容: docker history 镜像名称
查看docker存储驱动: docker info centos使用overlay2,ubuntu使用aufs
overlay2支持的文件系统: ext4, xfs
容器是在镜像上面加了一层读写层
Docker使用存储驱动器管理每层内容及可读写的容器层
3. 镜像结构
Docker镜像采用分层结构,最底层为bootfs,上层为rootfs
bootfs:用于系统引导的文件系统,包括bootloader和kernel,容器启动完成后会被卸载以节约内存资源;
rootfs:位于bootfs之上,表现为docker容器的根文件系统
docker中,rootfs由内核挂载为只读模式,而通过联合挂载技术额外挂载一个可写层。
下层的镜像称为父镜像,最底层的称为基础镜像。
最上层为可读写层,其下的称为只读层
2. 镜像管理
1. 搜索镜像
docker search nginx
2. 下载镜像
docker image pull 镜像名称:TAG
例子:
docker image pull httpd
如果不写tag,默认为TAG为lasest.
严格来讲:pull镜像的时候,应该指定镜像服务器的地址。
docker image pull registry.hub.docker.com/httpd:TAG
docker image pull –a 下载仓库中的所有镜像。
新版本: docker image pull nginx
3. 查看镜像的详细信息
docker image inspect 镜像名:TAG
可以看到镜像的制作者,适应架构,各层的数字摘要
4. 查看镜像的历史
docker image history 镜像名:TA
因为镜像文件是由多层形成的,使用这个命令可以看到镜像文件的形成历史。
5. 上传镜像到一个私有库
docker image push 私有库地址:tag
6. 保存镜像到一个文件中
docker image save 镜像名:TAG -o 文件
7. 载入镜像
docker image load --input 镜像名:TAG
docker image load -i 镜像名:TAG
docker image < 镜像名:TAG
8. 删除镜像
docker image rmi 镜像名:TAG
9. 修改镜像标签
docker image tag source_image new_image:TAG
10. 强制删除镜像
docker image rmi -f 镜像名:TAG
11. 列出镜像
docker image ls
3. 容器管理
1. 创建容器
docker container create 镜像名称:TAG
创建的容器处于停止状态,还需要使用docker start 启动容器。
2. 启动容器
docker container run 镜像名称:TAG
        
例子:
docker run -itd --name=tomcat-search -p 8087:8080 -v /home/java/app/search/webapps:/usr/local/apache-tomcat-8.5.43/webapps -v /home/java/app/search/logs:/usr/local/apache-tomcat-8.5.43/logs tomcat:v2
3. 停止容器
docker container stop 容器名称或容器ID
4. 重启容器
docker container restart 容器名称或容器ID
5. 删除容器
docker container rm 容器名称或容器ID
docker container rm 容器名称或容器ID -f 强制删除容器
6. 查看容器
docker container ps 查看当前运行的容器
docker container ps -a 查看所有的容器
7. 显示运行的容器进程
docker container top tomcat-cart 显示的是容器内部运行的进程
8. 杀死运行中的容器
docker container kill tomcat-cart
9. 查看容器内运行程序的日志,包含标准输出日志和标准输出错误日志
docker container logs tomcat-cart
10. 命名容器
docker container run -d --name web nginx:1.21
11. 查看容器详情
docker container inspect 容器ID
12. 查看容器资源情况
docker container stats 容器ID
13. 进入容器
docker container exec -it 容器ID /bin/bash
-d, --detach:在容器中后台执行命令;
--privileged=true|false:是否给执行命令以高权限,默认值为false;
-i, --interactive=true|false:打开标准输入接受用户输入命令,默认值为false;
-t, --tty=true|false:分配伪终端,默认值为false;
14. 暂停容器
docker container pause 容器ID
15. 清理所有停止的容器
docker container prune
16. 拷贝数据
docker cp命令用于容器与主机之间的数据拷贝
docker cp 本地文件 容器ID:容器内部路径
主机到容器 docker cp /www 9ff9ff99fd:/www/
docker cp 容器ID:容器内部路径 本地文件
容器到主机 docker cp 9ff9ff99fd:/www /tmp
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号