docker命令详解html
1 docker 命令介绍linux
docker --help
管理命令:
container 管理容器
image 管理镜像
network 管理网络
命令:
attach 介入到一个正在运行的容器
build 根据 Dockerfile 构建一个镜像
commit 根据容器的更改建立一个新的镜像
cp 在本地文件系统与容器中复制 文件/文件夹
create 建立一个新容器
exec 在容器中执行一条命令
images 列出镜像
kill 杀死一个或多个正在运行的容器
logs 取得容器的日志
pause 暂停一个或多个容器的全部进程
ps 列出全部容器
pull 拉取一个镜像或仓库到 registry
push 推送一个镜像或仓库到 registry
rename 重命名一个容器
restart 从新启动一个或多个容器
rm 删除一个或多个容器
rmi 删除一个或多个镜像
run 在一个新的容器中执行一条命令
search 在 Docker Hub 中搜索镜像
start 启动一个或多个已经中止运行的容器
stats 显示一个容器的实时资源占用
stop 中止一个或多个正在运行的容器
tag 为镜像建立一个新的标签
top 显示一个容器内的全部进程
unpause 恢复一个或多个容器内全部被暂停的进程
复制代码
2.更详细的功能参数配置git
参数 | 解释 |
---|---|
--api-enable-cors=false | 开放远程API调用的 CORS 头信息。这个接口开关对想进行二次开发的上层应用提供了支持. |
-b, --bridge="" | 挂载已经存在的网桥设备到 Docker 容器里。注意,使用 none 能够停用容器里的网络. |
--bip="" | 使用 CIDR 地址来设定网络桥的 IP。注意,此参数和 -b 不能一块儿使用. |
-D, --debug=false | 开启Debug模式。例如:docker -d -D |
-d, --daemon=false | 开启Daemon模式. |
--dns=[] | 强制容器使用DNS服务器.例如: docker -d --dns 8.8.8.8 |
--dns-search=[] | 强制容器使用指定的DNS搜索域名.例如: docker -d --dns-search example.com |
-e, --exec-driver="native" | 强制容器使用指定的运行时驱动.例如:docker -d -e lxc |
-G, --group="docker" | 在后台运行模式下,赋予指定的Group到相应的unix socket上。注意,当此参数 --group 赋予空字符串时,将去除组信息。 |
-g, --graph="/var/lib/docker" | 配置Docker运行时根目录 |
-H, --host=[] | 在后台模式下指定socket绑定,能够绑定一个或多个 tcp://host:port, unix:///path/to/socket, fd://* 或 fd://socketfd。例如:$ docker -H tcp://0.0.0.0:2375 ps 或者 $ export DOCKER_HOST="tcp://0.0.0.0:2375" $ docker ps |
--icc=true | 启用内联容器的通讯. |
--ip="0.0.0.0" | 容器绑定IP时使用的默认IP地址. |
--ip-forward=true | 启动容器的 net.ipv4.ip_forward. |
--iptables=true | 启动Docker容器自定义的iptable规则. |
--mtu=0 | 设置容器网络的MTU值,若是没有这个参数,选用默认 route MTU,若是没有默认route,就设置成常量值 1500. |
-p, --pidfile="/var/run/docker.pid" | 后台进程PID文件路径. |
-r, --restart=true | 重启以前运行中的容器. |
-s, --storage-driver="" | 强制容器运行时使用指定的存储驱动,例如,指定使用devicemapper, 能够这样:docker -d -s devicemapper |
--selinux-enabled=false | 启用selinux支持 |
--storage-opt=[] | 配置存储驱动的参数 |
--tls=false | 启动TLS认证开关 |
--tlscacert="/Users/dxiao/.docker/ca.pem" | 经过CA认证过的的certificate文件路径 |
--tlscert="/Users/dxiao/.docker/cert.pem" | TLS的certificate文件路径 |
--tlskey="/Users/dxiao/.docker/key.pem" | TLS的key文件路径 |
--tlsverify=false | 使用TLS并作后台进程与客户端通信的验证 |
-v, --version=false | 显示版本信息 |
*注意:其中带有[] 的启动参数能够指定屡次,例如github
docker run -a stdin -a stdout -a stderr -i -t ubuntu /bin/bash
复制代码
uname -r
复制代码
systemctl start docker
复制代码
3.查看docker版本docker
docker verison
复制代码
4.显示docker系统的信息shell
docker info
复制代码
1.检索imageubuntu
docker search image-name
复制代码
2.下载imagesegmentfault
docker pull image-name
复制代码
3.列出镜像列表windows
docker images
复制代码
4.删除一个或者多个镜像api
docker rmi image-name
复制代码
5.显示一个镜像的历史
docker history image-name
复制代码
6.经过容器建立镜像
*从已经建立的容器中更新镜像,而且提交这个镜像 *使用 Dockerfile 指令来建立一个新的镜像 下面经过已存在的容器建立一个新的镜像。
docker commit -m="First Image" -a="keke" 7a15f99695c0 keke/unbantu:17.10.0
上面命令参数说明:
* -m 提交的描述信息
* -a 指定镜像做者
* 7a15f99695c0 记住这个是容器id,不是镜像id
* keke/unbantu:17.10.0 建立的目标镜像名
复制代码
docker tag keke/unbantu:17.10.0 keke/unbantu-test:lastest
复制代码
docker login
复制代码
4.上传unbantu镜像
docker push keke/unbantu-test:lastest
复制代码
docker容器能够理解为在沙盒中运行的进程。这个沙盒包含了该进程运行所必须的资源,包括文件系统、系统类库、shell 环境等等。但这个沙盒默认是不会运行任何程序的。你须要在沙盒中运行一个进程来启动某一个容器。这个进程是该容器的惟一进程,因此当该进程结束的时候,容器也会彻底的中止。
1.在容器中安装新的程序
docker run image-name apt-get install -y -name
复制代码
2.在容器中运行"echo"命令,输出"hello word"
docker run image-name echo "hello word"
复制代码
3.交互式进入容器中
docker run -i -t image_name /bin/bash
复制代码
注意:在执行apt-get 命令的时候,要带上-y参数。若是不指定-y参数的话,apt-get命令会进入交互模式,须要用户输入命令来进行确认,但在docker环境中是没法响应这种交互的。apt-get 命令执行完毕以后,容器就会中止,但对容器的改动不会丢失.
1.列出当前全部正在运行的container
docker ps
复制代码
2.列出全部的container
docker ps -a
复制代码
3.列出最近一次启动的container
docker ps -l
复制代码
4.保存对容器的修改 当你对某一个容器作了修改以后(经过在容器中运行某一个命令),能够把对容器的修改保存下来,这样下次能够从保存后的最新状态运行该容器。
1.保存对容器的修改; -a, --author="" Author; -m, --message="" Commit message
docker commit ID new-image-name
复制代码
5.操做容器
1.删除全部容器
docker rm `docker ps -a -q`
复制代码
2.删除单个容器; -f, --force=false; -l, --link=false Remove the specified link and not the underlying container; -v, --volumes=false Remove the volumes associated to the container
docker rm Name/ID
复制代码
3.中止、启动、杀死一个容器
docker stop Name/ID
docker start Name/ID
docker kill Name/ID
复制代码
4.从一个容器中取日志; -f, --follow=false Follow log output; -t, --timestamps=false Show timestamps
docker logs Name/ID
复制代码
5.列出一个容器里面被改变的文件或者目录,list列表会显示出三种事件,A 增长的,D 删除的,C 被改变的
docker diff Name/ID
复制代码
6.显示一个运行的容器里面的进程信息
docker top Name/ID
复制代码
7.从容器里面拷贝文件/目录到本地一个路径
docker cp Name:/container-path to-path
docker cp ID:/container-path to-path
复制代码
8.重启一个正在运行的容器; -t, --time=10 Number of seconds to try to stop for before killing the container, Default=10
docker restart Name/ID
复制代码
9.附加到一个运行的容器上面; --no-stdin=false Do not attach stdin; --sig-proxy=true Proxify all received signal to the process
docker attach ID #从新启动并运行一个交互式会话shell
复制代码
注意:使用这个命令能够挂载正在后台运行的容器,在开发应用的过程当中运用这个命令能够随时观察容器內进程的运行情况.
当须要把一台机器上的镜像迁移到另外一台机器的时候,须要保存镜像与加载镜像。
1.保存镜像到一个tar包; -o, --output="" Write to an file
docker save image-name -o file-path
复制代码
2.加载一个tar包格式的镜像; -i, --input="" Read from a tar archive file
docker load -i file-path
复制代码
3.从机器A拷贝到机器B
docker save image-name > /home/keke/main.tar
*使用scp将main.tar拷到机器A上:
docker load < /home/keke/main.tar
复制代码
1.登录registry server; -e, --email="" Email; -p, --password="" Password; -u, --username="" Username
docker login
复制代码
docker push new-image-name
复制代码
FROM ...
RUN ...
# 指定容器内的程序将会使用容器的指定端口
# 配合 docker run -p
EXPOSE ...
复制代码
docker history images-name
复制代码
1.重新镜像启动容器
docker run -d -p 4000:80 --name [name] #能够在 Dokcer 宿主机上指定一个具体的端口映射到容器的80端口上
复制代码
docker run -d container-name #建立守护容器
docker top container-name #查看容器内进程
docker exec container-name touch a.txt #在容器内部运行进程
docker stop container-name #中止容器
复制代码
以为此文章不错能够去github给我star! 若是还有遇到问题能够加我微信Sen0676备注下来自github,进go实战群详细交流!