docker学习笔记---基本命令
[root@docker ~]# docker Usage: docker [OPTIONS] COMMAND A self-sufficient runtime for containers Options:
--config string Location of client config files (default "/root/.docker")
-D, --debug Enable debug mode
-H, --host list Daemon socket(s) to connect to
-l, --log-level string Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default "info")
--tls Use TLS; implied by --tlsverify
--tlscacert string Trust certs signed only by this CA (default "/root/.docker/ca.pem")
--tlscert string Path to TLS certificate file (default "/root/.docker/cert.pem")
--tlskey string Path to TLS key file (default "/root/.docker/key.pem")
--tlsverify Use TLS and verify the remote
-v, --version Print version information and quit Management Commands:
config Manage Docker configs
container Manage containers
image Manage images
network Manage networks
node Manage Swarm nodes
plugin Manage plugins
secret Manage Docker secrets
service Manage services
stack Manage Docker stacks
swarm Manage Swarm
system Manage Docker
trust Manage trust on Docker images
volume Manage volumes Commands:
attach Attach local standard input, output, and error streams 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 between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
events Get real time events from the server
exec Run a command in a running container
export Export a container's filesystem as a tar archive
history Show the history of an image
images List images
import Import the contents from a tarball to create a filesystem image
info Display system-wide information
inspect Return low-level information on Docker objects
kill Kill one or more running containers
load Load an image from a tar archive or STDIN
login Log in to a Docker registry
logout Log out from a Docker registry
logs Fetch the logs of a container
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes Run 'docker COMMAND --help' for more information on a command.
1、docker start/stop/restart/kill
启动/停止/重启/杀掉容器
实例操作如下:
[root@docker ~]# docker start myweb
[root@docker ~]# docker stop myweb
[root@docker ~]# docker restart myweb
[root@docker ~]# docker kill -s kill myweb
参数 -s #向容器发送信号
2、docker run
创建并启动一个新的容器
常用参数如下:
-d, --detach=false #后台运行容器,并返回容器ID
-i, --interactive=false #以交互式模式运行容器,常与-t参数同时使用
-t, --tty=false #给容器重新分配一个伪终端,常与-i参数同时使用
-w, --workdir="", 指定容器的工作目录
--name #给容器指定一个名称
-e, --env=[] 指定环境变量,容器中可以使用该环境变量
-m --memory="" #指定容器使用内存的最大值
-c, --cpu-shares=, 设置容器CPU权重,在CPU共享场景使用
-p, --publish=[], 指定容器暴露的端口
-v, --volume=[], 给容器挂载存储卷,挂载到容器的某个目录
--volumes-from=[], 给容器挂载其他容器上的卷,挂载到容器的某个目录
--net #指定容器使用的网络类型
bridge 使用docker daemon指定的网桥
host //容器使用主机的网络
container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源
none 容器使用自己的网络(类似--net=bridge),但是不进行配置
--link #链接到另一个容器
--restart="no", 指定容器停止后的重启策略:
no:容器退出时不重启
on-failure:容器故障退出(返回值非零)时重启
always:容器退出时总是重启
实例操作如下:
[root@docker ~]# docker run -d --name nginx busybox:latest
3a90679ec552a00a989a9db2734044fd9a0314b35eee9b490cdcd7e763782516
#后台启动并运行一个名为nginx的容器,运行前它会自动去docker镜像站点下载最新的镜像文件 [root@docker ~]# docker run -d -p 8080:8080 busybox:latest
3c4d6a2f19099deebc5c3f874a2c86a281076f52921fb27614654237da1cba4e
#后台启动并运名为nginx的容器,然后将容器的80端口映射到物理机的80端口 [root@docker ~]# docker run -d -v /opt/data/:/docker/data -p 8080:8080 busybox:latest
89511e1621bb7222785deb641dfb5d7b69971e0787ecc293f47931881acd8fec
#后台启动并运名为nginx的容器,然后将容器的80端口映射到物理机的80端口,并且将物理机的/opt/data目录映射到容器的/docker/data [root@docker ~]# docker run -dit -v /opt/data/:/docker/data -p 8080:8080 busybox:latest /bin/sh
59961b69f80b3dab22330da30e5d4363dbd98d8bb3597b8fcfa485216f33176d
[root@docker ~]# docker exec -it 59961b69f80b /bin/sh
/ # ls /docker/data/
/ #
#以交互式模式运行容器,然后在容器内执行/bin/bash命令
3、docker rm
删除容器
常用参数如下:
-f #强制删除一个运行中的容器
-l #删除指定的链接
-v #删除与容器关联和卷
实例操作如下:
[root@docker ~]# docker rm -f mydocker
#强制删除容器mydocker
[root@docker ~]# docker rm -f dockerA dockerB
#强制删除容器dockerA,dockerB
[root@docker ~]# docker rm -v mydocker
#删除容器,并删除容器挂载的数据卷
4、docker create
创建一个新的容器但不启动它
[root@docker ~]# docker create --name myserver busybox:latest
09b93464c2f75b7b69f83d56a9cfc23ceb50a48a9db7652ee4c27e3e2cb1961f
#创建一个名为myserver的容器
5、docker exec
在运行的容器中执行命令
常用参数如下:
-d #在后台运行
-i #保持STDIN打开
-t #分配一个伪终端
实例操作如下
[root@docker ~]# docker exec -it busybox /bin/sh /server/scripts/docker.sh
hello world!!!!!!!!!!
#以交互模式执行容器中的/server/scripts/docker.sh脚本
[root@docker ~]# docker exec -it busybox /bin/sh
root@b1a0703e41e7:/#
#以交互模式给容器分配一个伪终端连接
6、docker ps
列出容器(正在运行)
常用参数如下:
-a #列出所有容器包括停止的
-f #根据条件过滤显示内容
-l #列出最近创建的容器
-n #列出最近创建的N个容器,N为数字
-q #只显示容器ID
-s #显示总文件大小
实例操作如下: [root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3734caa2f63 busybox:latest "/bin/sh" 2 hours ago Up 2 hours 0.0.0.0:8080->8080/tcp busybox
#列出正在运行的容器 [root@docker ~]# docker ps -n 2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e3734caa2f63 busybox:latest "/bin/sh" 2 hours ago Up 2 hours 0.0.0.0:8080->8080/tcp busybox
81d825fbfc3b busybox:latest "/bin/bash" 3 hours ago Created 0.0.0.0:8080->8080/tcp vigorous_torvalds
#列出最近创建的2个容器 [root@docker ~]# docker ps -a -q
e3734caa2f63
81d825fbfc3b
89511e1621bb
3c4d6a2f1909
#显示所有容器的ID
7、docker inspect
获取容器的元数据
常用参数如下:
-f #指定返回值格式或模板文件
-s #显示总文件大小
--type #为指定类型返回JSON
实例操作如下: [root@docker ~]# docker inspect f2b851facacc
[
{
"Id": "f2b851facacc4b43a1585cc855d464e21a64d470e9c000fec1f633e75f9706e7",
"Created": "2019-12-15T10:01:46.932500174Z",
"Path": "/bin/sh",
"Args": [],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
"Dead": false,
"Pid": 7586,
"ExitCode": 0,
"Error": "",
"StartedAt": "2019-12-15T10:01:47.870143961Z",
"FinishedAt": "0001-01-01T00:00:00Z"
},
"Image": "sha256:db8ee88ad75f6bdc74663f4992a185e2722fa29573abcc1a19186cc5ec09dceb",
"ResolvConfPath": "/var/lib/docker/containers/f2b851facacc4b43a1585cc855d464e21a64d470e9c000fec1f633e75f9706e7/resolv.conf",
"HostnamePath": "/var/lib/docker/containers/f2b851facacc4b43a1585cc855d464e21a64d470e9c000fec1f633e75f9706e7/hostname",
"HostsPath": "/var/lib/docker/containers/f2b851facacc4b43a1585cc855d464e21a64d470e9c000fec1f633e75f9706e7/hosts",
"LogPath": "/var/lib/docker/containers/f2b851facacc4b43a1585cc855d464e21a64d470e9c000fec1f633e75f9706e7/f2b851facacc4b43a1585cc855d464e21a64d470e9c000fec1f633e75f9706e7-json.log",
"Name": "/peaceful_ride",
"RestartCount": 0,
"Driver": "overlay2",
"Platform": "linux",
"MountLabel": "",
"ProcessLabel": "",
"AppArmorProfile": "",
"ExecIDs": null,
"HostConfig": {
"Binds": [
"/opt/data/:/docker/data/"
],
------------------------------省略部分内容
#获取容器ID为f2b851facacc的元数据信息 [root@docker ~]# docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' f2b851facacc
172.17.0.2
#获取容器为f2b851facacc的IP地址
8、docker logs
获取容器的日志
常用参数如下:
-f #跟踪日志输出
-t #显示时间戳
--tail #只显示最新n条容器日志
--since #显示某个开始时间的所有日志
实例操作如下: [root@docker ~]# docker logs -f busybox
#跟踪查看容器busybox的日志
9、docker port
显示指定容器的端口映射
实例操作如下:
[root@docker ~]# docker port busybox
8080/tcp -> 0.0.0.0:8080
#显示busybox容器的端口映射信息
10、docker commit
用已存在的容器重新创建一个新的镜像
常用参数如下:
-a #提交的镜像作者
-c #使用Dockerfile指令来创建镜像
-m #提交时附上说明文字
-p #在commit时,将容器暂停
实例操作如下:
[root@docker ~]# docker commit -a "test" -m "mynginx" busybox busybox:v1.0
sha256:f4d667e471bc72c315bd889869fc1914936dfae2dedd2ce186ee06cad33bb4bd [root@docker ~]# docker images |grep busybox
busybox v1.0 f4d667e471bc 24 seconds ago 1.22MB
#将容器busybox重新生成一个新的版本busybox:v1.0
11、docker cp
用于容器与物理主机之间拷贝文件
实例操作如下:
[root@docker ~]# docker cp /opt/data/index.html busybox:/docker
[root@docker ~]# docker exec -it busybox /bin/ls /docker
data index.html
#将物理主机中的/opt/data/index.html拷贝到容器busybox的/docker目录下 [root@docker ~]# docker cp /opt/data/index.html busybox:/docker/index.php
[root@docker ~]# docker exec -it busybox /bin/ls /docker
data index.html index.php
#将物理主机中的/opt/data/index.html拷贝到容器busybox的/docker目录下并改名为index.php [root@docker ~]# docker cp busybox:/docker /opt/
[root@docker ~]# ls /opt/
data docker
#拷贝容器busybox:/docker目录到物理主机中的/opt/目录下
12、docker login/logout
用于登录与登出容器镜像仓库
docker login #登陆到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
docker logout #登出一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库 Docker Hub
常用参数如下:
-u #登陆的用户名
-p #登陆的密码
实例操作如下:
[root@docker ~]# docker login -u username -p password
Login Succeeded
[root@docker ~]# docker logout
Removing login credentials for https://index.docker.io/v1/
#登录与登出默认的容器镜像仓库
13、docker pull/push
docker pull #从镜像仓库中拉取或者更新指定镜像
docker push #将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
实例操作如下:
[root@docker ~]# docker pull nginx
Using default tag: latest
Trying to pull repository docker.io/library/nginx ...
latest: Pulling from docker.io/library/nginx
f2aa67a397c4: Already exists
3c091c23e29d: Pulling fs layer
4a99993b8636: Pulling fs layer
#从镜像仓库中拉取或者更新指定镜像,输出信息如上
[root@docker ~]# docker push busybox:v1.0.0
#上传镜像到镜像仓库上
14、docker images
显示系统本地容器镜像文件
常用参数如下:
-a #列出所有的镜像(含中间映像层,默认,过滤掉中间映像层);
--digests #显示镜像的摘要信息;
-f #显示满足条件的镜像;
--format #指定返回值的模板文件;
--no-trunc #显示完整的镜像信息;
-q #只显示镜像ID。
实例操作如下:
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox v1.0 f4d667e471bc 8 minutes ago 1.22MB
bitnami/jenkins
#列出本地所有的镜像
[root@docker ~]# docker images -q
20ee805752cb
4700307f41f2
#只显示容器ID
[root@docker ~]# docker images --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
busybox v1.0 <none> f4d667e471bc 9 minutes ago 1.22MB
bitnami/jenkins 2.176.3-debian-9-r5 sha256:3ed6e367edbfececb8d5eb81e1a95eacf188f2f39e629301170aa6b44d61fb92 efdd74a3f655 3 months ago 872MB [root@docker ~]# docker images --no-trunc
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox v1.0 sha256:f4d667e471bc72c315bd889869fc1914936dfae2dedd2ce186ee06cad33bb4bd 10 minutes ago 1.22MB
bitnami/jenkins 2.176.3-debian-9-r5 sha256:efdd74a3f655022fedbb3ce09b4652f3b7fdf785f75ffeb1e0adb351d40b68e9 3 months ago 872MB
#可以对比下两个参数显示的不同信息
15、docker rmi
删除镜像
常用参数如下:
-f #强制删除
实例操作如下:
[root@docker ~]# docker images |grep busybox
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox v1.0 f4d667e471bc 12 minutes ago 1.22MB
busybox latest db8ee88ad75f 4 months ago 1.22MB
[root@docker ~]# docker rmi f4d667e471bc
Untagged: busybox:v1.0
Deleted: sha256:f4d667e471bc72c315bd889869fc1914936dfae2dedd2ce186ee06cad33bb4bd
Deleted: sha256:d7fda98509933c5c8f3ee5f3e774c817edcc15ee38960c27a4d19eef44253708
[root@docker ~]# docker images |grep busybox
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest db8ee88ad75f 4 months ago 1.22MB
#删除一个镜像
16、docker tag
标记本地镜像
实例操作如下:
[root@docker ~]# docker images |grep busybox
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest db8ee88ad75f 4 months ago 1.22MB
[root@docker ~]# docker tag busybox:latest busybox:v2
[root@docker ~]# docker images |grep busybox
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest db8ee88ad75f 4 months ago 1.22MB
busybox v2 db8ee88ad75f 4 months ago 1.22MB
#从结果可以看出两个容器的ID是一样的,只是TAG改变了,类似于linux中文件与文件的硬链接一样,其两者的inode号相同。
17、docker build :
使用Dockerfile创建镜像
常用参数如下:
-f #指定要使用的Dockerfile路径
--label=[] #设置镜像使用的元数据;
-m #设置内存最大值
--memory-swap #设置Swap的最大值为内存+swap,"-1"表示不限swap
--no-cache #创建镜像的过程不使用缓存
--pull #尝试去更新镜像的新版本
-q #安静模式,成功后只输出镜像ID
--rm #设置镜像成功后删除中间容器
--ulimit #Ulimit配置
实例操作如下:
[root@docker ~]# docker build https://github.com/nginxinc/docker-nginx/
18、docker history
查看指定镜像的创建历史
常用参数如下:
-H #以可读的格式打印镜像大小和日期,默认为true;
--no-trunc #显示完整的提交记录;
-q #仅列出提交记录ID。
实例操作如下:
[root@docker ~]# docker history busybox:latest
IMAGE CREATED CREATED BY SIZE COMMENT
db8ee88ad75f 4 months ago /bin/sh -c #(nop) CMD ["sh"] 0B
<missing> 4 months ago /bin/sh -c #(nop) ADD file:9ceca008111a4ddff… 1.22MB
19、docker info
显示 Docker 系统信息,包括镜像和容器数
20、docker version
显示 Docker 版本信息
实例操作如下:
[root@master ~]# docker version
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:23:03 2018
OS/Arch: linux/amd64
Experimental: false Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:25:29 2018
OS/Arch: linux/amd64
Experimental: false
21、docker save
将指定镜像保存成 tar 归档文件
选项:
-o:输出到的文件
docker save -o nginx.tar.gz nginx:latest
22、docker load
导入使用 docker save命令导出的镜像
选项:
--input , -i : 指定导入的文件,代替 STDIN。
--quiet , -q : 精简输出信息
docker学习笔记---基本命令的更多相关文章
- docker~学习笔记索引
回到占占推荐博客索引 使用docker也有段时间了,写了不少文章与总结,下面把它整理个目录出来,方便大家去学习与检索! docker~学习笔记索引 docker~linux下的部署和基本命令(2017 ...
- Docker学习笔记 — 配置国内免费registry mirror
Docker学习笔记 — 配置国内免费registry mirror Docker学习笔记 — 配置国内免费registry mirror
- docker学习笔记1 -- 安装和配置
技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔 ...
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...
- Docker学习笔记 - Docker容器内部署redis
Docker学习笔记(2-4)Docker应用实验-redist server 和client的安装使用 一.获取redis容器(含客户端和服务端) 二.创建服务端容器 1.在终端A中运行redis- ...
- docker学习笔记(一)—— ubuntu16.04下安装docker
docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...
- Docker学习笔记总结
Docker学习笔记 https://yeasy.gitbooks.io/docker_practice/content/ 一 环境搭建 Ubuntu安装 .添加软件源的GPG密钥 curl -f ...
- docker学习笔记二:常用命令
docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...
- docker学习笔记-1
docker学习笔记一:安装 mac安装docker docker官方文档上有这么一段话: Because the Docker daemon uses Linux-specific kernel f ...
随机推荐
- CCNA 之 五 路由协议 一 静态路由
静态路由 路由选择原理 什么是路由? 就如同去某一个地方,会有很多种路线,每一条路线经都可以称之为路由: 路由器中会维护一张路由表,每一个表项都是一条路由,也就是去往某个网络的路径,然后将对应的数据包 ...
- centos7安装samba
samba是一个实现smb协议的开源软件,为局域网内的不同计算机之间提供文件和打印机共享服务. 1.安装yum groupinstall “file-server” -y 2.配置cp /etc/sa ...
- php-fpm的pool、php-fpm慢执行日志、open_basedir、php-fpm进程管理
6月13日任务 12.21 php-fpm的pool12.22 php-fpm慢执行日志12.23 open_basedir12.24 php-fpm进程管理 12.21 php-fpm的pool p ...
- VLAN实验2(配置Trunk接口)
本实验基于<HCNA网络技术实验指南> 本实验使用eNSP软件 原理概述: 在以太网中,通过划分VLAN来隔离广播域和增强网络通信的安全性.以太网通常由 多台交换机组成,为了使VLAN的数 ...
- __getattribute__(self, obj) 这个方法中的obj这个参数
class Itcast(object): def __init__(self, subject1): self.subject1 = subject1 print("^^^^^^^---- ...
- Git基础用法
从远程仓库拉取代码: git clone https://xxxx.xxx.xx 进入拉取到代码的路径下,(文件夹中含有 .git 隐藏文件夹) 查看当前是否关联到远git代码管理 git statu ...
- 华为云OCR文字识别 免费在线体验!
嘿,华为云OCR文字识别了解一下,免费在线体验! 物流行业快速提取运单信息.医疗/保险行业单据快速录入.政务办事人证检验,你知道这些都是如何实现的么? 答案就是:OCR文字识别! 作为AI时代效率倍增 ...
- mac终端基本命令
一 基本命令 1.列出文件 ls 参数 目录名 参数 -w 显示中文,-l 详细信息, -a 包括隐藏文件 例: 看看驱动目录下有什么:ls /System/Library/Extensions 2. ...
- go实践之swagger自动生成api文档
文章目录 go实践之swagger自动生成api文档 1.安装需要用到的包 2.接口代码支持swagger 3. 生成swagger接口 go实践之swagger自动生成api文档 作为一个后端开发, ...
- CSU oj 2092-Space Golf
You surely have never heard of this new planet surface exploration scheme, as it is being carried ou ...