Linux运维笔记
我们一直在努力

Docker基础入门命令

Docker安装:

CentOS 6:yum install -y docker-io
CentOS 7:yum install -y docker

Docker镜像命令:

获取镜像 docker pull centos

查看镜像 docker images
-a,–all= 列出所有的镜像文件(包括临时文件),默认为否(true|false)
–digests= 列出镜像的数字摘要值,默认为否(true|false)
-f,–filter=[] 过滤列出的镜像,如dangling=true只显示没有被使用的镜像;也可指定带有特定标注的镜像等
–format=”” 控制输出格式,如.ID代表ID信息,.Repository代表仓库信息等
–no-trunc= 对输出结果中太长的部分是否进行截断,如镜像的ID信息,默认为是(true|false)

添加新镜像标签 docker tag centos7-test:1 centos-7-test:2

查看详细信息 docker inspect

获取inspect信息 docker inspect centos:7 -f {{“.Architecture”}}

查看镜像创建过程docker history centos:latest

搜寻镜像 docker search
–automated= 仅显示自动创建的镜像,默认为否(true|false)
–no-trunc=t 输出信息不截断显示,默认为否(true|false)
-s,–stars= 指定仅显示评价为指定星级以上的镜像,默认为0,即输出所有镜像。

删除镜像 docker rmi centos:7

用镜像ID删除镜像docker rmi -f 5182e96772bf

创建镜像 docker commit -m “touch a file” -a “docker admin” 788f85e0eac3 centostest:1
-a “” 作者信息
-c,–change=[] 提交的时候执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|UUSER|VOLUME|WORKDIR
-m “” 提交消息
-p,–pause= 提交时暂停容器运行。(true)

基于本地模板导入cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import – ubuntu:14.04

导出镜像 docker save -o centos7.tar centos:7

导入镜像 docker load < centos7.tar

上传镜像 docker push user/test:latest

Docker容器命令:

新建容器 docker create -it centos:latest

查看容器运行状态docker ps -a

查看所有容器的IDdocker ps-qa

启动容器 docker start 容器名

新建并启动容器 docker run centos/bin/echo ‘Hello world ‘等价于先执行docker create命令,再执行docker start命令。
-t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入上
-i 则让容器的标准输入保持打开。
-d 容器在后台以守护态(Daemonized)形式运行。此时,可以通过添加-d参数来实现。

终止容器 docker stop ce5

强制终止容器 docker kill

重新启动容器 docker start 处于终止状态的容器,可以通过docker start命令来重新启动:

进入容器

1.attach命令:但是使用attach命令有时候并不方便。当多个窗口同时用attach命令连到同一个容器的时候,所有窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作了。

docker attach nostalgic_hypatia
–detach-keys[=[]] 指定退出attach模式的快捷键序列,默认是CTRL-p CTRL-q;
–no-stdin= 是否关闭标准输入,默认是保持打开。(true|false)
–sig-proxy= 是否代理收到的系统信号给应用进程,默认为true。(true|false)

2.exec命令:

docker exec -it 243c32535da7/bin/bash
-i,–interactive= 打开标准输入接受用户输入命令,默认为false。(true|false)
–privileged= 是否给执行命令以高权限,默认为false。(true|false)
-t,–tty= 分配伪终端,默认为false。(true|false)
-u,–user=”” 执行命令的用户名或ID。

3.nsenter工具:

wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz
tar -xf util-linux-2.24.tar.gz
cd util-linux-2.24
yum install -y gcc-c++
./configure –without-ncurses
make nsenter
cp nsenter /usr/local/bin

获得容器的pid ContainerPID=$(docker inspect –format “{{ .State.Pid }}” 容器名);echo $ContainerPID

进入容器 nsenter –target 容器PID –mount –uts –ipc –net –pid

删除容器 docker rm d3a3726edcd3
-f,–force=false 是否强行终止并删除一个运行中的容器;
-l,–link=false 删除容器的连接,但保留容器;
-v,–volumes=false 删除容器挂载的数据卷。

导出容器 docker export -o centos7-test.tar e7f8ddec66a8
docker export e7f8ddec66a8 > centos7-test.tar

导入容器 docker import centos7-test.tar – test/centos:7

搭建私有Docker仓库:

赞(0) 打赏

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址