docker 命令整理

简介:

安装Docker:

ubuntu安装:curl -s https://get.docker.io/ubuntu/ | sudo sh 

镜像管理

docker images:列出本地所有镜像

docker search <IMAGE_ID/NAME>:查找image

docker pull <IMAGE_ID>:下载image

docker push <IMAGE_ID>:上传image

docker rmi <IMAGE_ID>:删除image


容器管理

docker run -i -t <IMAGE_ID> /bin/bash:-i:标准输入给容器    -t:分配一个虚拟终端    /bin/bash:执行bash脚本

-d:以守护进程方式运行(后台)

-P:默认匹配docker容器的5000端口号到宿主机的49153 to 65535端口

-p <HOT_PORT>:<CONTAINER_PORT>:指定端口号

- -name: 指定容器的名称

- -rm:退出时删除容器



docker stop <CONTAINER_ID>:停止container

docker start <CONTAINER_ID>:重新启动container

docker ps - Lists containers.

-l:显示最后启动的容器

-a:同时显示停止的容器,默认只显示启动状态


docker attach <CONTAINER_ID> 连接到启动的容器

docker logs <CONTAINER_ID>  : 输出容器日志

-f:实时输出

docker cp <CONTAINER_ID>:path hostpath:复制容器内的文件到宿主机目录上

docker rm <CONTAINER_ID>:删除container

docker rm `docker ps -a -q`:删除所有容器

docker kill `docker ps -q`

docker rmi `docker images -q -a`

docker wait <CONTAINER_ID>:阻塞对容器的其他调用方法,直到容器停止后退出


docker top <CONTAINER_ID>:查看容器中运行的进程

docker diff <CONTAINER_ID>:查看容器中的变化

docker inspect <CONTAINER_ID>:查看容器详细信息(输出为Json)

-f:查找特定信息,如docker inspect -f '` `.`NetworkSettings`.`IPAddress `'

      docker commit -m "comment" -a "author" <CONTAINER_ID>  ouruser/imagename:tag


      docker extc -it <CONTAINER> <COMMAND>:在容器里执行命令,并输出结果



网络管理

docker run -P:随机分配端口号

docker run -p 5000:5000:绑定特定端口号(主机的所有网络接口的5000端口均绑定容器的5000端口)

docker run -p 127.0.0.1:5000:5000:绑定主机的特定接口的端口号

docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py:绑定udp端口号

docker port <CONTAINER_ID> 5000:查看容器的5000端口对应本地机器的IP和端口号

使用Docker Linking连接容器:

Docker为源容器和接收容器创建一个安全的通道,容器之间不需要暴露端口,接收的容器可以访问源容器的数据

docker run -d -P --name <CONTAINER_NAME> --link <CONTAINER_NAME_TO_LINK>:<ALIAS>  


数据管理

Data Volumes:volume是在一个或多个容器里指定的特殊目录

数据卷可以在容器间共享和重复使用

可以直接修改容器卷的数据

容器卷里的数据不会被包含到镜像中

容器卷保持到没有容器再使用它

可以在容器启动的时候添加-v参数指定容器卷,也可以在Dockerfile里用VOLUMN命令添加

docker run -d -P --name web -v /webapp training/webapp python app.py


也可以将容器卷挂载到宿主机目录或宿主机的文件上,<容器目录或文件>的内容会被替换为<宿主机目录或文件>的内容,默认容器对这个目录有可读写权限

docker run -d -P --name web -v <宿主机目录>:<容器目录> training/webapp python app.py


可以通过指定ro,将权限改为只读

docker run -d -P --name web -v <宿主机目录>:<容器目录>:ro training/webapp python app.py


在一个容器创建容器卷后,其他容器便可以通过--volumes-from共享这个容器卷数据,如下:

docker run -d -v /dbdata --name db1 training/postgres echo Data-only container for postgres


首先启动了一个容器,并为这个容器增加一个数据卷/dbdata,然后启动另一个容器,共享这个数据卷

docker run -d --volumes-from db1 --name db2 training/postgres


此时db2使用了db1的容器卷,当容器db1被删除时,容器卷也不会被删除,只有所有容器不再使用此容器卷时,才会被删除

docker rm -v:删除容器卷


除了共享数据外,容器卷另一个作用是用来备份、恢复和迁移数据

docker run --volumes-from db1 -v /home/backup:/backup ubuntu tar cvf /backup/backup.tar /dbdata


启动一个容器数据卷使用db1容器的数据卷,同时新建立一个数据卷指向宿主机目录/home/backup,将/dbdata目录的数据压缩为/backup/backup.tar

docker run -v /dbdata --name dbdata2 ubuntu /bin/bash

docker run --volumes-from dbdata2 -v /home/backup:/backup busybox tar xvf /backup/backup.tar

启动一个容器,同时把backup.tar的内容解压到容器的backup


仓库管理

docker login:登录





保存对容器的修改(commit) 

当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器。

?

1

2

# 保存对容器的修改; -a, --author="" Author; -m, --message="" Commit message

$docker commit ID new_image_name


# 列出一个容器里面被改变的文件或者目录,list列表会显示出三种事件,A 增加的,D 删除的,C 被改变的

$docker diff Name/ID

 

# 显示一个运行的容器里面的进程信息

$docker top Name/ID

 

# 从容器里面拷贝文件/目录到本地一个路径

$docker cp Name:/container_path to_path

$docker cp ID:/container_path to_path

 

# 重启一个正在运行的容器; -t, --time=10 Number of seconds to try to stop for before killing the container, Default=10

$docker restart Name/ID



保存和加载镜像(save、load) 

当需要把一台机器上的镜像迁移到另一台机器的时候,需要保存镜像与加载镜像。






# 保存镜像到一个tar包; -o, --output="" Write to an file

$docker save image_name -o file_path

# 加载一个tar包格式的镜像; -i, --input="" Read from a tar archive file

$docker load -i file_path

 

# 机器a

$docker save image_name > /home/save.tar

# 使用scp将save.tar拷到机器b上,然后:

$docker load < /home/save.tar

登录registry server(login)

?

1

2

# 登陆registry server; -e, --email="" Email; -p, --password="" Password; -u, --username="" Username

$docker login



详解修改docker时区及docker常用命令


docker cp /etc/localtime:【容器ID或者NAME】/etc/localtime


apk add tzdata 

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

echo "Asia/Shanghai" > /etc/timezone


ENV TZ=Asia/Shanghai

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone



本文转自 zbill 51CTO博客,原文链接:http://blog.51cto.com/dek701/1979912,如需转载请自行联系原作者
相关文章
|
1月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
348 124
|
4月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
1420 75
|
5月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p &lt;宿主机端口&gt;:&lt;容器端口&gt;`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
|
4月前
|
Docker 容器
熟悉Docker容器管理命令:start、stop与restart详细使用指南
掌握这些Docker容器管理命令对于维护应用程序的正常运行至关重要。在实际操作中,应注意容器配置、关联资源以及日志等信息,确保各项操作都能够顺畅并且安全地执行。
609 0
|
6月前
|
网络协议 Ubuntu Docker
Docker Compose--命令说明
Docker Compose--命令说明
1111 30
|
6月前
|
Ubuntu Linux 开发者
常用的Docker命令:docker_cmd_sheet
以上就是一些常用的Docker命令,希望能帮助你更好地驾驭这个强大的工具。记住,Docker就像是一个魔法咒语,只有真正理解和熟练使用,才能发挥出它的最大魔力。
160 22
|
6月前
|
Shell 应用服务中间件 nginx
docker 镜像的部分常用命令
docker镜像常用命令
231 16
|
6月前
|
关系型数据库 MySQL Docker
|
6月前
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
370 5
|
11月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
414 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解