docker命令笔记

最近在搞devops,服务docker化,在这里记录一下常用的docker相关的命令~

有不对的地方,请大家指正,谢谢~

持续更新中~

基于我自己对docker的理解简单介绍一下docker的概念:

docker简单来说就是新一代的虚拟机,主要有三个概念:

1.仓库,仓库的作用是存储docker镜像,有公共仓库和私有仓库。

2.镜像,可以理解为windows的安装镜像,我理解为一种静态资源。

3.容器,可以理解windows系统,是动态的资源,提供了一种虚拟机服务。

镜像根据dockerfile来制作,dockerfile是制作镜像的规约,需要我们根据业务需要进行编写。

容器基于制作完成的镜像运行,和宿主机进行端口关联,提供相关的服务供外部访问。

镜像相关:

查看本地镜像:

docker images 参数-a 列出本地所有镜像

删除镜像

docker rmi +镜像名/镜像ID 参数-f 表示强制删除 

(仅使用docker rmi删除镜像时可能会提示你该镜像关联了容器,请先删除容器)

给镜像打tag

docker tag [OPTIONS] IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]

示例:给nginx镜像打tag,tag号V1,并且关联到镜像仓库regi.sod.com,仓库用户名dev

docker tag nginx regi.sdo.com/dev:V1

根据dockerfile生成镜像

docker build -f + dockerfile的文件路径 常用参数-m:指定内存大小 --tag:指定镜像的标签

查看镜像创建历史

docker history +镜像名/镜像ID

容器相关

运行一个容器

基本语法:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

常用参数说明:

-t: 为容器重新分配一个输入终端。

-d: 后台运行容器。

-p: 端口映射,格式为:宿主机端口:容器端口

-i: 以交互模式运行容器。

--name="某某某": 为容器指定一个名称

--expose=[]: 开放一个端口或一组端口;

示例:基于镜像nginx:20180926V1运行一个容器,以交互模式启动,后台运行容器,并且在容器内执行/bin/bash命令(镜像nginx:20180926V1的基础镜像是centos 7)

docker run -dit nginx:20180926V1 /bin/bash

运行完毕之后使用docker exec命令进入该容器,我们看到的是一个标准的linux界面,可以输入linux命令进行相关操作。

这个命令在不引入k8s的情况下是比较常用的。

容器启/停/重启

启动:docker start 容器名字/容器ID

停止:docker stop 容器名字/容器ID

重启:docker restart 容器名字/容器ID

杀容器:

docker kill 容器名字/容器ID

删除容器

docker rm 容器名字/容器ID

参数说明:

-f 强制删除容器

-l 移除容器之间的网络连接,不删除容器

暂停容器中的服务

docker pause 暂停容器中所有进程

docker unpause 恢复容器中的所有进程

仅创建容器

docker create

示例:仅创建基于镜像nginx:20180926的容器,名字叫nginxRunning,但是不启动该容器

docker create --name myrunoob nginx:20180926

在运行的容器中执行命令

实际使用中存在进入容器进行相关操作的需求

Docker exec 

参数说明:

-d :分离模式: 在后台运行

-i :即使没有附加也保持STDIN 打开

-t :分配一个伪终端

示例:

①分离模式执行容器内的脚本

docker exec -d 容器名/容器ID /bin/sh /app/start.sh

②交互模式进入运行中的容器

docker exec -it 容器名/容器ID /bin/bash

显示容器列表

docker ps 参数-a表示列出所有容器,包括未运行的容器

获取运行中容器的进程信息

docker top 容器名/容器ID

连接到正在运行的容器

docker attach 容器名/容器ID

获取容器的日志

docker logs  容器名/容器ID

参数介绍:

-f : 跟踪日志输出

--tail=N :仅列出最新N条容器日志

文件归档

Docker export 容器名/容器ID

参数-o表示将输入内容写入文件

示例

docker export -o nginx.tar ca09a0p362t2(末尾是容器ID)

表示将ID为ca09a0p362t2的容器的文件系统保存为nginx.tar

列出指定容器的端口映射

docker port 容器名/容器ID

仓库相关

登陆到镜像仓库

docker login -u 用户名 -p 密码 仓库地址

登出:

docker logout 仓库地址

拉取镜像

docker pull 镜像名

推送本地镜像到镜像仓库

注意:需要先登录到相应的镜像仓库

docker push 镜像名:tag版本号

示例

docker push nginx:0926V1

即推送本地镜像nginx tag号0926V1到镜像仓库

从Docker Hub查找镜像

docker search 镜像名

 

 

 

你可能感兴趣的:(docker)