docker基础命令

常用命令可分为以下几种

1.容器生命周期管理 # docker [run|start|stop|restart|kill|rm|pause|unpause]

2.容器操作运维  # docker [ps|inspect|top|attach|events|logs|wait|export|port]

3.容器rootfs命令   # docker [commit|cp|diff]

4.镜像仓库         # docker [login|pull|push|search]

5.本地镜像管理     # docker [images|rmi|tag|build|history|save|import]

6.其它命令         # docker [info|version]

镜像相关操作命令:

//创建镜像的方法有三种

//基于已有镜像的容器创建

//基于本地模板导入

//基于Dockerfile文件创建

commit  基于已有镜像的容器再生成一个新的镜像

# docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

-m,--message=""  提交信息,为镜像描述内容

-a,--author=""   作者信息

-p,--pause=true  提交时暂停容器运行

My_Container:1  是提交的镜像名称和版本

# docker commit -m "Centos7 x64 First Image" -a "Loren" 33d619155d03 My_centos7:1

import 基于本地模板导入容器快照,将一个容器快照文件导入本地

# cat centos.tar | docker import - test/centos:v1.0

build 根据Dockerfile文件创建一个新的镜像

# docker build [OPTIONS] PATH | URL | -

-t  设定镜像名称及其标示号

-f,--file=Dockerfile 指定Dockerfile文件路径

# docker build -t test:2 -f /opt/

search Image_name  在docker index中搜索image

--automated=false

-s N, --stars=0  指定评价为N星级以上的镜像

# docker search centos6

pull Image_name  从docker register server 中下拉image或者repository

# docker pull centos

# docker pull centos:centos6

# docker pull dl.dockerpool.com:5050/centos:6.8  指定网站下载

push  推送一个image或者repository到registry

上传之前要把上传的image的tag修改为 hup用户名/镜像名字:tag

如 # docker tag centos6.8:v1 644597521/centos6.8:v1

images  显示本地的所有镜像列表

rmi  删除指定id的镜像

tag  修改镜像名

# docker tag test:1 My_image:v2  修改test标记好为1的名称为My_image标记号为v2

save 保存镜像到本地文件

Usage: docker save [OPTIONS] IMAGE [IMAGE...]

-o, --output=""

# docker save -o centos_6.4.tar centos6.4:v1  # 导出本地的centos6.4:v1镜像为centos_6.4.tar文件

load 将本地文件导入到本地镜像库

Usage:docker load [OPTIONS]

-i, --input=""

# docker load < centos_6.4.tar  # 将centos_6.4.tar文件导入到本地镜像列表

inspect  显示镜像或容器的信息。返回的是JSON格式信息,若只要其中一项内容,可以使用-f指定

容器常用操作命令:

run   运行一个新的container

# Usage:docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

-a,--attack

-i,--interactive=false   以交互模式运行容器,通常和-t搭配

-t,--tty=false   分配一个伪输入终端

-d  后台运行

-P  允许外部访问容器所有开启的端口

-p  端口映射  -p 80:80

--name  指定启动后容器的名字

# docker run -i -t centos

# docker run -i -t -d centos /bin/bash

# docker run -i -t -d --name My_Container centos /bin/bash

# docker run -i -t -d -p 80:80 --name My_Container centos /bin/bash

-v,--volume=[] 创建数据卷

/mnt 在容器中创建一个数据卷

/webapp:/src/webapp     目录挂载。将本地的webapp目录挂载到容器的/src/webapp。容器和宿主机的挂载目录都会同时变化

/test.txt:/tmp/text.txt 文件挂载。将本地的/test.txt文件挂载到容器的/tmp/text.txt(注意,只能修改容器挂载内的文件,否则不同步)

# docker run -ti -v /da --name=dbdata centos 创建一个容器dbdata,并创建一个数据卷挂载容器dbdata的/da目录

--volume-from 共享挂载数据卷

# docker run -ti -v /mnt --name db centos    创建一个数据卷容器db,并创建一个数据卷挂载到容器db的/mnt目录下

# docker run -ti --volume-from=db --name db1 centos # db1容器挂载db 容器中的数据卷

# docker run -ti --volume-from=db --name db2 centos # db2容器挂载db 容器中的数据卷

此时三个容器db,db1,db2都可以分享目录/mnt

--link  连接其他容器

--link NAME:Alias  Name要建立连接的容器名,Alias连接的容器的别名

# docker run -ti -d -P --name web --link lamp:lamp centos6.4 /bin/bash 新建容器web和已经运行的容器lamp连接

ps 显示容器的列表

-a  显示所有信息

-q  只显示ID

# docker inspect 5d20c5528521  显示容器的详细信息

# docker ps -a -q ID

# docker inspect -f "{{ .State.Pid }}" 5d20c5528521  显示运行容器的PID

stop|start|restart 停止|启动|重启容器

exec 进入容器(推荐使用)

# docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

# docker exec -t -i 216c623071b3 /bin/bash

attack CONTAINER_ID  进入容器

# docker attack 216c623071b3

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

nsenter

# yum install util-linux

# PID=$(docker inspect -f "{{ .State.Pid }}" 5d20c5528521)

# nsenter --target $PID --mount --uts --ipc --net --pid

# nsenter --target 10981 --mount --uts --ipc --net --pid

-t, --target <pid>     要获取名字空间的目标进程

-m, --mount[=<file>]   enter mount namespace

-u, --uts[=<file>]     enter UTS namespace (hostname etc)

-i, --ipc[=<file>]     enter System V IPC namespace

-n, --net[=<file>]     enter network namespace

-p, --pid[=<file>]     enter pid namespace

rm   删除一个容器

-f, --force=true  强制删除

-l, --link=false  删除容器的连接,但保留容器

-v, --volumes=false  删除容器挂载的数据卷

export 导出容器,导出一个已经创建的容器到一个文件,不管此时这个容器是否处于运行状态

-o, --output=""

# docker export 929bf12bc6ea > centos_6.4_php.tar

其它常用命令

docker -H 127.0.0.1:1234 -d &   修改服务端监听本地的TCP连接1234端口

volume 管理docker的文件

login  登录仓库https://hub.docker.com/,登录成功后信息保存文件在用户家目录/.docker/config.json

输入用户,密码,邮件。

下载 .bashrc_docker,并将内容放到 .bashrc 中

# wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker;

# echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc

# source ~/.bashrc

这个文件中定义了很多方便使用 Docker 的命令,例如 docker-pid 可以获取某个容器的 PID;

而 docker-enter 可以进入容器或直接在容器内执行命令

http://liumissyou.blog.51cto.com/4828343/1792500

时间: 2024-11-29 10:24:10

docker基础命令的相关文章

Docker实战(一):Docker基础命令

Docker基础命令 下面简单介绍一下Docker常用的一些基础命令 # 在ubuntu中安装docker $ sudo apt-get install docker.io # 查看docker的版本信息 $ docker version # 查看安装docker的信息 $ docker info # 查看本机Docker中存在哪些镜像 $ docker images # 检索image $ docker search ubuntu:14.04 # 在docker中获取ubuntu镜像 $ do

Docker基础命令使用

Docker基础命令 本文主要基于上一片篇docker安装,来演示命令使用方法,docker安装. 1.Docker Hub搜索镜像 docker search 关键字 选项:--automated=false:仅显示自动创建的镜像(通过Github或BitBucket仓库自动构建的镜像,直接从仓库复制一份,生成dockerfile并自动生成标记) --no-trunc=false:输出信息不截断显示 -s,--stars=x:指定仅显示评价位指定星级以上的镜像 1)搜索centos docke

1. Docker基础命令

本文简要介绍Docker的基础命令,目的在于快速入门Dokcer,Docker的完整命令可以参考Docker官方手册. Docker的子命令非常多,可以使用 docker [help|--help|-H|-h] 查看Docker完整子命令 $ docker Usage: docker COMMAND ... Commands: attach Attach local standard input, output, and error streams to a running container

docker基础命令,常用操作

docker基础命令 使用docker镜像 获取镜像 从docker registry获取镜像的命令是docker pull.命令格式是: docker pull [选项][docker registry地址] 仓库名:标签 docker register地址:地址的格式一般是 域名:端口,默认地址是docker hub 仓库名:仓库名是两段格式,用户名/软件名,如果不写用户,默认docker hub用户名是library,也就是官方镜像 列出服务器所有的镜像文件 # 列出所有的imaga文件

Docker基础命令详解——镜像及容器操作

Docker基础命令详解--镜像及容器操作 前言 ? 上篇文章介绍了有关Docker的基础与Linux下docker的安装,本文主要讲解安装docker后的基础使用方法以及命令的介绍,主要是docker镜像操作及容器操作命令. ? 当然,docker的相关命令非常多,可以使用docker help命令查看对应目录以及相关提示命令. Docker镜像操作命令 [[email protected] ~]# which docker /usr/bin/docker 1.镜像搜索:docker sear

Centos安装docker及docker基础命令

安装 rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo yum -y install docker-io service docker start 基础命令 docker search 在仓库中寻找镜像 docker  pull 拉取镜像

docker基础命令总结

docker info 显示docker详细信息docker pull busybox 拉取镜像docker pull nginxdocker images nginx 查看正在运行的镜像docker run --name nginx01 -d -p 8099:80 nginx 用nginx镜像启动一个容器,命名为nginx01 并映射了8099端口 这样我们就可以直接访问nginx了:firefox 127.0.0.1:8099现在,假设我们非常不喜欢这个欢迎页面,我们希望改成欢迎 Docke

docker基础命令详解

Commands: attach    Attach to a running container build     Build an image from a Dockerfile commit    Create a new image from a container's changes cp        Copy files/folders from a container's filesystem to the host path create    Create a new co

Docker基础命令和时区问题

Docker 命令 1. 安装Docker # ubuntu系统安装 $ sudo apt install docker-ce # 启动docker $ sudo systemctl start docker # 开机启动docker $ sudo systemctl enable docker # 停止docker $ sudo systemctl stop docker 2.Docker常用命令&操作 1).镜像操作 操作 命令 说明 检索 docker search 关键字 eg:dock