docker常用命令 docker快速上手

Docker组成

镜像
容器
仓库

下面记录下docker使用过程中在镜像、容器、仓库的常用命令。

Docker常用命令

帮助命令

docker version #查看docker版本
docker info    #查看docker info信息
docker --help  #docker help

镜像命令

docker images #在本地上查看已有镜像
    -a 列出所有的镜像
    -q 只显示镜像id
    --digets 显示摘要信息
    --no-truns
docker search 镜像名 #docker搜索某个镜像
docker pull 镜像名   #docke上传镜像
docker rmi 镜像id    #docke删除镜像
docker rm -f 镜像名 #删除单个镜像 
docker rmi 镜像名1:tag1 镜像名2:tag2 #删除多个镜像 
docker rmi -f $(docker images -q)  #删除全部镜像

容器命令

新建并启动

docker run [options] IMAGE [command][ARG...]

    options: 
    --name 为容器指定一个新名称
    -d 后台运行容器
    -t 交互式方式运行
    -i  启动一个伪终端
    -p 指定端口映射 (物理本机端口:容器端口)
    -v 本地目录:容器目录
    -P 随机端口映射 (大写P)
    -it 用tty方式运行以交互模式运行
    -privileged=true 启动容器时开启特权模式
    -c "echo $PATH" #启动容器执行shell命令
    /bin/bash # 启动容器,在容器内执行/bin/bash命令。 
    /bin/bash cs1.sh; cs2.sh; cs3.sh # docker容器启动时执行多个sh脚本 (需要启动的脚本,要放在 /etc/init.d/目录下,修改权限; chkconfig --add cs.sh chkconfig cs.sh on )
    python3 tools_api.py #启动api.py文件,这样可以不需要再Dockfile中指定 CMD命令,或者覆盖Dockfile中的CMD命令。(这样就将环境和代码分离 否则如果将py文件打包到镜像中的话,任何对代码的修改都必须重新生成镜像。)

eg:

docker run -d -p 5000:5000 --privileged=true -v /home/.registry/data:/home/.registry/lib  --restart=always --name pirvi_registry registry
docker run -p 5422:22 -it --privileged=true 192.168.15.175:5000/centos-cpp:7 sh
docker run  -v /usr/ToolsAPIDir:/ToolsAPIDir1 -d -p 5005:5004 -it toolsapi:v8 python3 tools_api.py
docker run -idt ***/*** /bin/bash cs1.sh; cs2.sh; cs3.sh
docker run ubuntu bash -c "echo $PATH"

docker run、docker exec、docker attach的区别:

docker run  #创建一个新的容器并运行一个命令 
docker exec #exec是针对已运行的容器实例进行操作,在已运行的容器中执行命令,不创建和启动新的容器
docker attach  #将本机的标准输入(键盘)、标准输出(屏幕)、错误输出(屏幕)附加到一个已经运行的容器,也就是说本机的输入直接输到容器中,容器的输出会直接显示在本机的屏幕上

eg:

docker run -it nginx:latest /bin/bash #用镜像nginx:latest以交互模式启动一个新容器,在容器内执行/bin/bash命令。
docker exec -it mynginx /bin/sh /root/fffmo.sh #在容器 mynginx 中以交互模式执行容器内 /root/fffmo.sh 脚本:

docker attach nginx-4 #可以attach到一个已经运行的容器nginx-4的stdin,然后进行命令执行的动作。
但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。
如果要正常退出不关闭容器,请按Ctrl+P+Q进行退出容器。

列出所有运行的容器

docker ps [options]
    options
    -a 列出所有正在运行的容器+历史运行过的
    -l 显示最近创建的容器
    -n 显示最近N个创建的容器
    -q 只显示容器id

退出容器

exit : 退出并停止容器
ctrl + p +q :退出不停止容器

启动容器

docker start 容器id or 容器名称

重启容器

docker restart 容器id or 容器名称

停止容器

docker stop 容器id or 容器名称

删除容器

docker rm 容器id or 容器名称

删除多个容器

docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm

强制停止容器

docker kill 容器id or 容器名称

后台方式运行容器

docker run -d 容器名

查看日志

docker logs -f -t --tail 容器id

查看容器内的进程

docker top 容器id

查看容器的详细信息

docker inspect 容器id

进入正在运行的容器,并以前台方式运行

docker exec -t 容器id bashshell 产生新进程
docker attach 容器id  进入容器,不产生新进程

从容器内拷贝文档到主机

docker cp 容器Id:容器内路径  主机路径
docker cp  96f7f14fffmo:/www /tmp/ # 将容器96f7f14fffmo的/www目录拷贝到主机的/tmp目录中。

docker仓库命令

docker仓库登录 :

docker login #命令来输入用户名、密码和邮箱来完成注册和登录

从仓库拉取镜像

docker pull [镜像名]

搜索镜像

docker search [想要搜索的镜像名]

创建和使用私有仓库:

安装Docker后,可以通过官方提供的registry镜像来简单搭建一套本地私有仓库环境:

docker run -d -p 5000:5000 registry

默认情况下,会将仓库创建在容器的/tmp/registry目录下。可以通过-v参数来将镜像文件存放在本地的指定路径上。
例如下面的例子将上传的镜像放到/opt/data/registry目录:

docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry

此时,在本地将启动- 个私有仓库服务,监听端口为5000。
docker run 命令执行时如果发现本地没有对应的镜像,则会先去拉取镜像再运行

使用docker tag命令把镜像的仓库标记为私有仓库机子地址

docker tag ubuntu2:16.04 10.0.2.2:5000/test

使用docker push命令上传镜像:

docker push 10.0.2.2:5000/test

用curl查看私有仓库的镜像是否上传成功

curl http://10.0.2.2:5000/v1/search 

使用docker pull命令下载镜像:

docker pull 10.0.2.2:5000/test
赞(1) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » docker常用命令

评论 抢沙发

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

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏