docker 基础命令

显示 Docker 版本信息。

docker version    

显示 Docker 系统信息,包括镜像和容器数。

 docker info

docker search 从 Docker Hub 中搜索符合条件的镜像。

docker search [options "o">] term
docker search -s  django
		--automated 只列出 automated build  类型的镜像;
		--no-trunc 可显示完整的镜像描述;
		-s 40 列出收藏数不小于40的镜像。

docker pull 从 Docker Hub 中拉取或者更新指定镜像。


docker pull [-a "o">] [user/ "o">]name[:tag "o">]
docker pull laozhu/telescope:latest

docker pull mysql:5.6

-a 拉取所有 tagged 镜像 。

docker login 按步骤输入在 Docker Hub 注册的用户名、密码和邮箱即可完成登录。

root@moon:~# docker login
Username: username
Password: ****
Email: [email protected]
Login Succeeded

运行后从指定服务器登出,默认为官方服务器。

docker logout   

docker images 列出本地所有镜像。其中 [name] 对镜像名称进行关键词查询。

docker images [options "o">] [name]
-a 列出所有镜像(含过程镜像);
-f 过滤镜像,如: -f ['dangling=true'] 只列出满足dangling=true 条件的镜像;
--no-trunc 可显示完整的镜像ID;
-q 仅列出镜像ID。
--tree 以树状结构列出镜像的所有提交历史。

列出所有运行中容器。

docker ps
docker ps -a

-a 列出所有容器(含沉睡镜像);
--before="nginx" 列出在某一容器之前创建的容器,接受容器名称和ID作为参数;
--since="nginx" 列出在某一容器之后创建的容器,接受容器名称和ID作为参数;
-f [exited=<int>] 列出满足exited=<int> 条件的容器;
-l 仅列出最新创建的一个容器;
--no--runc 显示完整的容器ID;
-n=4 列出最近创建的4个容器;
-q 仅列出容器ID;
-s 显示容器大小。

docker rmi 从本地移除一个或多个指定的镜像。

docker rmi [options "o">] <image>  "o">
docker rmi nginx:latest postgres:latest python:latest

docker rmi mysql:5.6

-f 强行移除该镜像,即使其正被使用;
--no-prune 不移除该镜像的过程镜像,默认移除。

docker rm

docker rm [options "o">] <container>  "o">[container...]
docker rm nginx-01 nginx-02 db-01 db-02
sudo docker rm -l /webapp/redis

-f 强行移除该容器,即使其正在运行;
-l 移除容器间的网络连接,而非容器本身;
-v 移除与容器关联的空间。

docker history 查看指定镜像的创建历史。

docker history  "o">[options] <image>

--no-trunc 显示完整的提交记录;
-q 仅列出提交记录ID。

启动、停止和重启一个或多个指定容器。

docker start|stop|restart 
docker start|stop "p">|restart [options "o">] <container>  "o">[container...]
docker start mysql56

-a 待完成

-i 启动一个容器并进入交互模式;

-t 10 停止或者重启容器的超时时间(秒),超时后系统将杀死进程。

docker kill 杀死一个或多个指定容器进程。

docker kill  "o">[options "o">] <container>  "o">[container...]
-s "KILL" 自定义发送至容器的信号。

docker events 从服务器拉取个人动态,可选择时间区间。

docker events [options "o">]
docker events --since= "s2">"20141020"
docker events --until= "s2">"20120310"

docker save 将指定镜像保存成 tar 归档文件

docker save -i "debian.tar"
docker save > "debian.tar"
将指定镜像保存成 tar 归档文件, docker load 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。
-o "debian.tar" 指定保存的镜像归档。

docker load 从 tar 镜像归档中载入镜像

docker load [options]
docker load < debian.tar
docker load -i "debian.tar"

-i "debian.tar" 指定载入的镜像归档。
从 tar 镜像归档中载入镜像, docker save 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。

docker export 将指定的容器保存成 tar 归档文件

docker export <container>
docker export nginx-01 > export.tar

将指定的容器保存成 tar 归档文件, docker import 的逆操作。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。

docker import 从归档文件(支持远程文件)创建一个镜像,

docker import url|-  "o">[repository[:tag "o">]]
cat export.tar  "p">| docker import - imported-nginx:latest
docker import http://example.com/export.tar

从归档文件(支持远程文件)创建一个镜像, export 的逆操作,可为导入镜像打上标签。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。

docker top 查看一个正在运行容器进程,支持 ps 命令参数。

docker top <running_container>  "o">[ps options]

docker inspect

docker instpect nginx:latest
docker inspect nginx-container

检查镜像或者容器的参数,默认返回 JSON 格式。
-f 指定返回值的模板文件。

暂停某一容器的所有进程。

docker pause

恢复某一容器的所有进程。

docker unpause
docker unpause <container>

docker tag 标记本地镜像,将其归入某一仓库。

docker tag [options "o">] <image>[:tag "o">] [repository/ "o">][username/]name "o">[:tag]

-f 覆盖已有标记。

将镜像推送至远程仓库

docker push name[:tag "o">]

docker push 用户名/仓库名 tag信息
docker push laozhu/nginx:latest


将镜像推送至远程仓库,默认为 Docker Hub 。

获取容器运行时的输出日志。

docker logs  
docker logs [options "o">] <container>
docker logs -f -t --tail= "s2">"10" insane_babbage

-f 跟踪容器日志的最近更新;
-t 显示容器日志的时间戳;
--tail="10" 仅列出最新10条容器日志。

docker run 启动一个容器

启动Mysql

docker run –-name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6

启动pgsql

docker run --name  pgdb -e POSTGRES_PASSWORD=112358 -p 54320:5432 -d postgres:9.5-alpine

启动nginx

$ docker run --name nginx-test -p 8080:80 -d nginx
#  -p 8080:80: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口
#  -d nginx: 设置容器在在后台一直运行。
docker run [options "o">] <image> [ "nb">command]  "o">[arg...]
启动一个容器,在其中运行指定命令。


docker run -it ubuntu:14.04
docker run -p 3306:3306 --name spike -e MYSQL_ROOT_PASSWORD=123456 -d mysql

-a stdin 指定标准输入输出内容类型,可选 STDIN/
STDOUT / STDERR 三项;

-d 后台运行容器,并返回容器ID;

-i 以交互模式运行容器,通常与 -t 同时使用;

-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

--name="nginx-lb" 为容器指定一个名称;

--dns 8.8.8.8 指定容器使用的DNS服务器,默认和宿主一致;

--dns-search example.com 指定容器DNS搜索域名,默认和宿主一致;

-h "mars" 指定容器的hostname;

-e username="ritchie" 设置环境变量;

--env-file=[] 从指定文件读入环境变量;

--cpuset="0-2" or --cpuset="0,1,2" 绑定容器到指定CPU运行;

-c 待完成

-m 待完成

--net="bridge" 指定容器的网络连接类型,支持 bridge /host / none container:<name|id> 四种类型;

--link=[] 待完成

--expose=[] 待完成

docker exec 进入系统的命令行

docker exec -it b30062adc08c   /bin/bash

进入nginx容器内

docker exec -it nginx bash 

杀死nginx容器实例

docker kill -s KILL 4a3ae8c39144

docker image ls


docker ps -a


docker kill [容器ID]

docker restart [容器ID]

docker stop [容器ID]

docker rm [容器ID]

docker logs [容器ID]

进入容器有两种方式:

如果从这个 stdin 中 exit,会导致容器的停止


docker attach [容器ID]


交互式进入容器
 docker exec [容器ID] 进入容器通常使用第二种方式,docker exec后面跟的常见参数如下: - d, --detach 在容器中后台执行命令; - i, --interactive=true I false :打开标准输入接受用户输入命令

导出容器 导出一个已经创建的容器到一个文件

docker export [容器ID]

导入容器 导出的容器快照文件可以再导入为镜像

docker import [路径]

docker logs [容器ID]

复制文件

从主机复制到容器

sudo docker cp host_path containerID:container_path

从容器复制到主机

sudo docker cp containerID:container_path host_path

docker win10 移动到D盘

mklink /J  C:/Users/bf/AppData/Local/Docker/wsl/data  D:/docker/data

作者:spike

分类: Tool

创作时间:2023-06-25

更新时间:2024-12-08

联系方式放在中括号之中例如[[email protected]],回复评论在开头加上标号例如:#1