k8sDocker

Docker常用命令

2022-07-20  本文已影响0人  羋学僧

获取镜像的三种方式

# 先搜索一下,查看镜像文件是否存在
docker search 镜像名:tag  tag就是具体的标签版本
docker search centos
# 查看本地的镜像文件有哪些
docker images
docker image ls
# 下载docker镜像
docker pull centos      # 默认是 centos:latest(最新版本)
docker pull centos:7.8.2003
# 查看docker镜像的存储路径
docker info | grep Root

Docker Root Dir: /var/lib/docker
# 镜像文件的存储目录
ll /var/lib/docker/image/overlay2/imagedb/content/sha256/
# 该目录下文件的作用是记录镜像和容器的配置关系
# 使用镜像生成不同的容器
# --it 开启一个交互式的终端       --rm 容器退出时删除该容器
[root@qzcsbj-harbor ~]# docker run -it --rm centos bash
[root@f0a706083ed1 /]# cat /etc/redhat-release
CentOS Linux release 8.4.2105
[root@f0a706083ed1 /]# exit
exit
[root@qzcsbj-harbor ~]# docker run -it --rm centos:7.8.2003 bash
[root@812c562a6bfc /]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
[root@812c562a6bfc /]# exit
exit

查看镜像

# 查看本地的全部镜像
docker images
# 查看具体的镜像
docker images centos
docker images nginx
# 指定具体的tag
docker images centos:7.8.2003 
# 只列出镜像的id
# -q 只列出id
docker images -q
# 格式化显示镜像
# --format "{{}}"这是docker的模板语言
[root@docker01 ~]# docker images --format "{{.ID}}--{{.Repository}}"
4cdc5dd7eaad--nginx
08502081bff6--redis
9873176a8ff5--ubuntu
300e315adb2f--centos
afb6fca791e0--centos
# 以表格形式显示,美化
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
# 查看镜像文件是否存在
docker search 镜像名:tag  tag就是具体的标签版本
docker search centos

删除镜像

# 下载镜像
docker pull hello-world

# 查看镜像id
docker images hello-world
# 根据镜像的id,名字,摘要等
# 被删除的镜像,不得有依赖的容器记录
docker rmi hello-world
# 显示所有的容器,包括未运行的
docker ps -a
# 删除容器记录
docker rm e332fe985eac  

镜像管理

# 批量删除镜像的用法,rm
# 批量删除镜像,慎用
docker rmi `docker images -qa`
# 批量删除容器
docker rm `docker ps -qa`
# 导出镜像
# 比如默认运行的centos镜像,不提供vim功能,运行该容器后,在容器内安装vim
# 然后提交该镜像,再导出镜像该镜像为压缩文件,可以发给其他人用

# 运行镜像,生成容器并进入容器
docker run -it centos:7.8.2003 bash
# 导出镜像
docker image save centos:7.8.2003 > /opt/centos7.8.2003.tgz

ls -lh /opt
# 导入镜像
docker rmi `docker ps -aq`
docker rmi centos:7.8.2003 
docker image load -i /opt/centos7.8.2003.tgz 
# 查看镜像详细信息
# 查看docker服务的信息
docker info
# 查看镜像详细的信息
docker image inspect 镜像id
docker image inspect afb6fca791e0

Docker容器管理

docker run 等于创建+启动
docker run 镜像名,如果镜像不存在本地,则会在线下载该镜像

注意:容器内进程必须在前台运行,否则容器就会直接退出。
容器内,必须有一个进程在前台运行。
自己部署一个容器运行,命令不得再后台运行,前台运行即可。
我们运行nginx基础镜像,没有运行任何程序,因此容器直接挂掉
1.运行一个挂掉的容器
# 该写法是错误写法,产生了容器记录,但是容器内并没有程序在跑,因此挂了
docker run centos:7.8.2003 
2. 运行容器,且进入容器内
docker run -it centos:7.8.2003 bash
3. 开启一个容器,让它帮你运行某个程序
docker run centos:7.8.2003 ping -c1 baidu.com
4. 运行一个活着的容器,docker ps可以看到的容器
# -d参数,让容器在后台跑着(针对宿主机而言)
docker run -d centos:7.8.2003 ping baidu.com
image.png
5. 丰富docker运行的参数
-d 后台运行
--rm 容器挂掉后自动被删除,使用docker stop 95d无法看到容器记录
--name 给容器取名
docker run -d --rm --name pythonav centos:7.8.2003 ping pythonav.cn
6. 查看容器日志
-f 实时监控日志
docker logs -f [容器id]
docker logs f0bca235a3ca | tail -3
7. 进入正在运行的容器空间内
docker exec -it f0bca235a3ca bash
8. 查看容器的详细信息
docker container inspect f0bca235a3ca
9. 容器的端口映射
# 后台运行nginx容器,且改名为nana,且端口映射宿主机的85端口,访问到容器内的80端口
docker run -d --name nana -p 85:80 nginx

# 查看容器
docker ps

# 查看容器的端口转发情况
docker port 3bcaf23f3f49
# 随机端口映射 -P 随机访问一个宿主机的空闲端口,映射到容器内打开的端口
docker run -d --name nana_nginx_88 -P nginx
docker ps -a
10. 容器的提交
# 运行基础的centos:7.8.2003,在容器内安装vim,然后提交新的镜像
# 新的镜像,再运行出的容器,默认就携带vim了
[root@qzcsbj-harbor ~]# docker run -it centos:7.8.2003 bash
[root@39da3ad323b7 /]# yum -y install vim
[root@39da3ad323b7 /]# exit
exit

[root@qzcsbj-harbor ~]# docker ps -a
CONTAINER ID   IMAGE              COMMAND          CREATED              STATUS                        PORTS         NAMES                      
39da3ad323b7   centos:7.8.2003    "bash"           About a minute ago   Exited (0) 27 seconds ago                   infallible_kepler                                

[root@qzcsbj-harbor ~]# docker commit 39da3ad323b7 nana/centos-vim-7.8.2003
sha256:aa12ab31b0d8867d87c98a7f9c39d7aa447bdae4028d4fddfef91fdb40aa1d27

[root@qzcsbj-harbor ~]# docker images
REPOSITORY                 TAG        IMAGE ID       CREATED          SIZE
nana/centos-vim-7.8.2003   latest     aa12ab31b0d8   20 seconds ago   382MB
nginx                      latest     4cdc5dd7eaad   43 hours ago     133MB
centos                     7.8.2003   afb6fca791e0   14 months ago    203MB

[root@qzcsbj-harbor ~]# docker run -it aa1
[root@b862a92c93dd /]# vim a.txt
[root@b862a92c93dd /]# cat a.txt

Docker常用命令汇总

镜像常用命令
    1、搜索镜像
    
        docker search [镜像名称]
    
    2、下载镜像
    
        docker pull [镜像仓库URL]/[镜仓库命名空间]/[镜像仓库名称]:[版本号]
    
    3、查看镜像列表
    
        docker image ls 
        docker images
    
    4、删除镜像
    
        docker rmi [镜像名称|ID]
        
        参数:
            -f : 强制删除
    
    5、清理镜像
    
        docker image prune 
        
        参数:
            -a : 清理所有未被使用的镜像
            -f : 强制删除
    
    6、镜像构建历史
        
        docker history [镜像名称|ID]
    
    7、登录镜像仓库
        docker login [仓库URL] --username '用户名称' --password '密码'
    
    8、上传镜像
    
        docker push [镜像仓库URL]/[镜仓库命名空间]/[镜像仓库名称]:[版本号]
    
    9、保存镜像
    
        1、将容器直接保存为镜像
        
            docker commit [容器名称|ID] [自定义镜像名称]
    
        2、将容器打包成镜像
        
            docker export
            
            docker import 
        
        3、将镜像打包成镜像压缩包
    
            docker save 
            
            docker load
    
    10、镜像标签

        docker tag [源镜像ID|名称] [新镜像名称]
    
    11、镜像详细信息
        docker inspect [镜像的ID|名称]

容器常用命令

    docker create : 创建容器,但是未启动
    docker rm : 删除容器
    docker start : 启动容器
    docker inspect : 查看容器的详细信息
    docker cp : 复制
    docker ps : 查看当前系统中正在运行的容器
    docker load : 导入容器
    docker logs : 查看容器日志
    docker exec : 在宿主主机上执行一个容器内部的命令
    docker run : 创建并启动一个容器
    
        参数:
            -d : 以守护进程方式运行
            -p : 固定端口映射
            -P : 随机端口映射
            -i : 打开标准输出
            -h : 设置容器内主机名
            -t : 创建终端
            -e : 设置容器内部的环境变量
            -v : 目录映射
            -m : 设置内存限制(默认:-1 不做任何限制)
            --name  : 设置容器名称
            --rm    : 当容器生命周期结束时,立即删除容器
            --link  : 连接一个容器
    
    docker stop : 停止容器
    docker restart : 重启容器
    docker rename : 重命名容器
上一篇下一篇

猜你喜欢

热点阅读