Docker常用命令匯總,和常用操作舉例


Docker命令

docker 常用命令如下

管理命令:
  container   管理容器
  image       管理鏡像
  network     管理網絡
  node        管理Swarm節點
  plugin      管理插件
  secret      管理Docker secrets
  service     管理服務
  stack       管理Docker stacks
  swarm       管理Swarm集群
  system      查看系統信息
  volume      管理卷
  
  如:docker container ls 顯示所有容器
  
普通命令:
    
  attach     進入一個運行的容器
  build      從一個DockerFile構建鏡像
  commit     從容器創建一個鏡像
  cp          從容器和主機文件系統之間拷貝文件 
  create      創建一個容器
  diff        檢查容器文件系統上的更改
  events      從服務器獲取實時事件
  exec        在正在運行的容器中運行命令
  export      將容器的文件系統導出為tar存檔
  history     顯示鏡像的歷史記錄
  images      查看鏡像列表
  import      從歸檔文件中創建鏡像
  info        顯示系統范圍的信息
  inspect     返回Docker對象的低級信息
  kill        kill運行中的容器
  load        從存檔或者STDIN加載鏡像
  login       登陸docker鏡像倉庫
  logout      退出docker鏡像倉庫
  logs        獲取一個容器的日志
  pause       暫停一個或多個容器中的所有進程
  port        查看端口映射或容器的特定映射列表
  ps          查看容器列表
  pull        從鏡像倉庫拉取鏡像
  push        將本地的鏡像上傳到鏡像倉庫,要先登陸到鏡像倉庫
  rename      重命名容器
  restart     重啟容器
  rm          刪除容器
  rmi         刪除鏡像
  run         創建一個新的容器並運行一個命令
  save        將指定鏡像保存成 tar 歸檔文件
  search      從Docker Hub搜索鏡像
  start       啟動容器
  stats       實時顯示容器資源使用情況的統計信息
  stop       停止容器
  tag         標記本地鏡像,將其歸入某一倉庫
  top         展示一個容器中運行的進程
  unpause     恢復容器中所有的進程
  update      更新容器配置
  version    顯示Docker的版本信息
  wait        阻塞直到容器停止,然后打印退出代碼
  
  如:docker images 顯示所有鏡像

下面將分別介紹一些常用操作

docker 拉取並運行一個鏡像

1、下載鏡像

$ docker pull centos 

2、查看已經下載的鏡像

$ docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    centos              latest              49f7960eb7e4        6 weeks ago         200MB
    hello-world         latest              f2a91732366c        8 months ago        1.85kB

3、運行一個鏡像並生成容器

//運行一個centos鏡像,並執行/bin/bash命令
$ docker run centos /bin/bash

輸入命令docker ps或者docker container ls查看運行中的容器,發現列表為空,原因是容器在執行完成命令后會自動退出,下面介紹讓讓容器停留在后台的方法

$ docker ps
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    
$ docker container ls
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

使用命令docker ps -a或者docker container ls -a 查看所用容器,並顯示了容器的狀態

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
5525373371f3        centos              "/bin/bash"         7 minutes ago       Exited (0) 7 minutes ago                        nifty_rosalind

docker 讓鏡像運行停留在后台

1、啟動一個容器並后台運行

docker run命令 通過增加-i -t參數可以讓容器並進入容器

docker run -i -t centos /bin/bash

按 Ctrl + P + Q 退出容器,再用 docker ps 進行查看

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
61b041e4e063        centos              "/bin/bash"         3 minutes ago       Up 3 minutes                            nervous_saha

狀態顯示仍在運行中

docker 進入一個運行的容器

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
36afde543eb5        mysql:5.7           "docker-entrypoint.s…"   About an hour ago   Up About an hour    0.0.0.0:3306->3306/tcp   mymysql

$ docker exec -it 36afde543eb5 /bin/bash

-i 保持STDIN打開 -t 分配一個虛擬TTY窗口

docker 提交一個鏡像到鏡像倉庫

1、首先到https://hub.docker.com/注冊一個賬號,保存下用戶名密碼 2.控制台登陸dockerhub賬戶

$ docker login
    輸入剛注冊的用戶名密碼

2、查看鏡像

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               latest              f06a5773f01e        2 days ago          83.4MB

3、選擇需要上傳的鏡像,重命名為指定的格式

$ docker  tag redis username/myredis:v1
username:為自己注冊的用戶名

myredis:為自己為鏡像取的名字

v1:為任意設置的版本號

4、完成上述操作后,即可提交鏡像到自己的倉庫

docker push username/myredis:v1

docker 映射文件從宿主機到容器,端口號映射

//將宿主機的81端口映射到容器的80端口
//將宿主機的/develop/data卷,映射到容器的/data卷

$ docker run -i -t -p 81:80 -v /develop/data:/data  centos /bin/bash

-p:映射端口號 -v:磁盤目錄映射

docker 更改端口號映射

運行中的容器無法映射新的端口號,也無法更改端口號映射,但可以通過兩種方法解決

1、iptable轉發端口

//查看容器ip
$ docker inspect 36afde543eb5 | grep IPAddress
"IPAddress": "172.17.0.2"

//將主機的8081端口映射到宿主機的8080端口
$ iptables -t nat -A  DOCKER -p tcp --dport 8081 -j DNAT --to-destination 172.17.0.2:8080

2、先提交容器為鏡像,再運行這個容器,同時指定新的端口映射

//提交容器為鏡像
$ docker commit 9995ffa15f46  mycentos:0.1
//停止舊的容器
$ docker stop 9995ffa15f46
//重新從舊的鏡像啟動容器
$ docker run -i -t  -p 8081:8080  mycentos:0.1

從DockerFile創建鏡像

$ docker build -t myimage:v1 .

-t :指定鏡像名稱和標簽,格式為'name:tag' .: 最后一個點代表當前目錄,也可以換成其它的路徑

 

原文地址:https://www.cnblogs.com/cblogs/p/dockerCommand.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM