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 拉取並運行一個鏡像

一、下載鏡像html

$ docker pull centos 

二、查看已經下載的鏡像node

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

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

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

輸入命令docker ps或者docker container ls查看運行中的容器,發現列表爲空,緣由是容器在執行完成命令後會自動退出,下面介紹讓讓容器停留在後臺的方法redis

$ 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 查看所用容器,並顯示了容器的狀態sql

$ 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 讓鏡像運行停留在後臺

一、啓動一個容器並後臺運行docker

docker run命令 經過增長-i -t參數可讓容器並進入容器shell

docker run -i -t centos /bin/bash 

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

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

狀態顯示仍在運行中ruby

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窗口bash

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

一、首先到https://hub.docker.com/註冊一個帳號,保存下用戶名密碼 2.控制檯登錄dockerhub帳戶

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

二、查看鏡像

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

三、選擇須要上傳的鏡像,重命名爲指定的格式

$ docker tag redis username/myredis:v1
username:爲本身註冊的用戶名

myredis:爲本身爲鏡像取的名字

v1:爲任意設置的版本號

四、完成上述操做後,便可提交鏡像到本身的倉庫

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 更改端口號映射

運行中的容器沒法映射新的端口號,也沒法更改端口號映射,但能夠經過兩種方法解決

一、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

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

//提交容器爲鏡像
$ 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

相關文章
相關標籤/搜索