docker 常用命令
Posted 玩电脑的辣条哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 常用命令相关的知识,希望对你有一定的参考价值。
docker的使用命令
1 docker 命令介绍
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 恢复一个或多个容器内所有被暂停的进程
docker基本
· 查看系统内核
· uname -r
· 启动docker 境像
· systemctl start docker
· 3.查看docker版本
· docker verison
· 4.显示docker系统的信息
· docker info
操作docker镜像
1.检索image
docker search image-name
2.下载image
docker pull image-name
3.列出镜像列表
docker images
4.删除一个或者多个镜像
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 注册账户,发布的镜像都在这个页面里展示
-
将上面做的镜像unbantu,起个新的名字unbantu-test
docker tag keke/unbantu:17.10.0 keke/unbantu-test:lastest
- 登录docker
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
注意:attach命令允许你查看或者影响一个运行的容器。你可以在同一时间attach同一个容器。你也可以从一个容器中脱离出来,是从CTRL-C.
保存和加载镜像
当需要把一台机器上的镜像迁移到另一台机器的时候,需要保存镜像与加载镜像。
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镜像
docker push new-image-name
构建镜像(Dockerfile + docker build)
FROM …
RUN …
指定容器内的程序将会使用容器的指定端口
配合 docker run -p
EXPOSE …
· RUN: 指定镜像被构建时要运行的命令
· CMD: 指定容器被启动时要运行的命令
· ENTRYPOINT: 同 CMD ,但不会被 docker run -t 覆盖
· WORKDIR: CMD/ENTRYPOINT 会在这个目录下执行
· VOLUME
· ADD
· COPY
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 #停止容器
以上是关于docker 常用命令的主要内容,如果未能解决你的问题,请参考以下文章
Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段