Docker基础命令大全(下)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Docker基础命令大全

save

load

import

container

  • 容器文件
    image 文件生成的容器实例,本身也是一个文件,称为容器文件。也就是说,一旦容器生成,就会同时存在两个文件: image 文件和容器文件。而且关闭容器并不会删除容器文件,只是容器停止运行而已。

docker container ls

# 列出本机正在运行的容器
docker container ls
# 列出本机所有容器,包括终止运行的容器
docker container ls --all(-a)

上面命令的输出结果之中,包括容器的 ID。很多地方都需要提供这个 ID,比如上一节终止容器运行的docker container kill命令。


有的同学觉得 docker ps & docker ps -a 不是更方便查看 container 的运行状态吗?

因为 docker container options 是Docker 1.13中的更新,docker container ls 与 docker ps 功能相同,但语义更明确,简化了Docker的用法,所以更推荐使用新写法


-q直接显示当前所有容器的 container id

docker container ls -aq
docker container ls -a | awk {'print$1'}

image.png

过滤状态字段显示

docker container ls -f "status=exited"

image.png

docker container rm

终止运行的容器文件,依然会占据硬盘空间,可以使用docker container rm命令删除。

docker container rm [containerID]

运行上面的命令之后,再使用docker container ls -a命令,就会发现被删除的容器文件已经消失了。

由于一个个指定 containerid 很麻烦,可以全部删除:

docker rm $(docker container ls -aq)

条件过滤删除

比如,我们想把退出的给全部删除

image.png

筛选出退出状态的image 文件

image.png

  • 直接删除
docker rm $(docker container ls -f "status=exited" -q)

docker container commit

根据容器的更改创建新image,比如在原 image 基础上安装了新的软件,那就可以上传新 image。

Usage:  docker container commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

image.png

可简写为

docker commit

容器操作

ps

docker ps : 列出容器

inspect

docker inspect : 获取容器/镜像的元数据。

语法

docker inspect [OPTIONS] NAME|ID [NAME|ID…]

参数

-f :指定返回值的模板文件。

-s :显示总的文件大小。

–type :为指定类型返回JSON。

获取镜像mysql:5.6的元信息。

runoob@runoob:~$ docker inspect mysql:5.6
[
    {
        "Id": "sha256:2c0964ec182ae9a045f866bbc2553087f6e42bfc16074a74fb820af235f070ec",
        "RepoTags": [
            "mysql:5.6"
        ],
        "RepoDigests": [],
        "Parent": "",
        "Comment": "",
        "Created": "2016-05-24T04:01:41.168371815Z",
        "Container": "e0924bc460ff97787f34610115e9363e6363b30b8efa406e28eb495ab199ca54",
        "ContainerConfig": {
            "Hostname": "b0cf605c7757",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "3306/tcp": {}
            },
...

获取正在运行的容器mymysql的 IP。

runoob@runoob:~$ docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql
172.17.0.3

镜像仓库

login

  • docker login
    登录到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
  • docker logout
    登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub

语法

docker login [OPTIONS] [SERVER]
docker logout [OPTIONS] [SERVER]

参数

-u
登录的用户名
-p :登陆的密码

实例

登录到Docker Hub

docker login -u 用户名 -p 密码

image.png

登出Docker Hub

docker logout

image.png

pull

image.png

push

docker push

image.png

注意 tag 必须是 hub 仓库的用户名,否则报错无权限。

image.png

但不推荐直接上传镜像,而是考虑安全问题,使用 Dockerfile 文件。即建立 hub 仓库和 GitHub 的映射,只要 GitHub 上有 Dockerfile 就会自动映射到 Dockerhub。

search

docker exec

进入运行中的容器。

比如进个 py 项目的容器:

docker exec -it image_id /bin/bash

查看 Python 的进程

ps -ef | grep python
进入容器项目的python
docker exec -it image_id python
查看 ip
docker exec -it image_id ip a

参考

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
2月前
|
安全 Docker 容器
|
2月前
|
网络安全 数据安全/隐私保护 Docker
|
3月前
|
Linux Docker 容器
Docker操作 :容器命令
Docker操作 (四)
204 56
|
2月前
|
存储 监控 安全
|
2月前
|
存储 关系型数据库 MySQL
|
2月前
|
网络协议 Docker 容器
docker pull命令拉取镜像失败的解决方案
docker pull命令拉取镜像失败的解决方案
1093 1
|
2月前
|
安全 网络安全 开发者
Docker学习笔记(一):Docker命令总结
本文介绍了Docker的基本概念、优点以及常用命令。Docker是一个开源的应用容器引擎,它通过容器打包应用程序及其依赖项,实现快速部署和迁移。主要优点包括轻量级、可移植性、易于管理、安全性和开源性。文章还区分了镜像和容器的概念,并提供了构建镜像、查看容器、运行容器、停止和删除容器等常用Docker命令的示例。
143 0
|
2月前
|
Linux 网络安全 Docker
安装后无法使用 Docker 命令
【10月更文挑战第3天】
237 2
|
2月前
|
安全 Shell Linux
docker进入容器命令
docker进入容器命令
|
2月前
|
运维 数据库 开发者
docker回顾--docker compose详细解释,安装,与常用命令
docker回顾--docker compose详细解释,安装,与常用命令
124 1