1. 程式人生 > 其它 >【3】opencv裡的Mat操作

【3】opencv裡的Mat操作

  • 第一次使用docker,從helle world開始
    • docker run hello-world
    • 映象的完整寫法:[倉庫地址/]映象名[:版本號]

--help 檢視幫助

  • 檢視映象
    • docker image ls 或 docker images
  • 查詢映象
    • docker search nginx
  • 拉取映象
    • docker pull nginx
  • 檢視映象歷史資訊
    • docker image history nginx
  • 檢視映象詳細資訊
    • docker image inspect nginx
  • 刪除無用映象
    • docker image prune
  • 移除映象
    • docker image rm nginx
    • docker rmi feb5d9fea6a5
  • 打包映象
    • docker image save [OPTIONS] IMAGE [IMAGE...]
    • docker image save hello-world -o hello.tar
  • 載入映象包
    • docker image load [OPTIONS]
    • docker image load -i "hello.tar"
  • 給映象打標籤
    • docker image tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
    • docker image tag hello-world:latest hello-world:1.0
  • 檢視容器
    • docker ps 列出正常執行的容器
    • docker ps -a 引數-a列出所有的容器
  • 移除容器
    • docker rm 2276a5ecfaca
    • -f引數 強制刪除
  • 執行容器
    • docker run nginx
    • docker run --name my_nginx nginx 執行一個名為my_nginx的nginx映象
    • -it 互動 -d 後臺執行 --rm 容器掛掉自動移除
docker exec --help

Usage:  docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Run a command in a running container

Options:
  -d, --detach               Detached mode: run command in the background
      --detach-keys string   Override the key sequence for detaching a container
  -e, --env list             Set environment variables
      --env-file list        Read in a file of environment variables
  -i, --interactive          Keep STDIN open even if not attached
      --privileged           Give extended privileges to the command
  -t, --tty                  Allocate a pseudo-TTY
  -u, --user string          Username or UID (format: <name|uid>[:<group|gid>])
  -w, --workdir string       Working directory inside the container
  • 進入容器
    • docker exec -it nginxtest bash
    • nginxtest 容器名稱或容器ID
    • exit 退出容器
docker commit --help

Usage:  docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Create a new image from a container's changes

Options:
  -a, --author string    Author (e.g., "John Hannibal Smith <[email protected]>")
  -c, --change list      Apply Dockerfile instruction to the created image
  -m, --message string   Commit message
  -p, --pause            Pause container during commit (default true)
  • 通過容器生成一個新的映象
  • docker commit -m 'this is test' mynginx my_nginx
# docker push --help

Usage:  docker push [OPTIONS] NAME[:TAG]

Push an image or a repository to a registry

Options:
  -a, --all-tags                Push all tagged images in the repository
      --disable-content-trust   Skip image signing (default true)
  -q, --quiet                   Suppress verbose output

將映象推送到遠端倉庫
  • 首先需要一個帶倉庫地址的映象
    • docker commit -m 'this is test' mynginx repositoryname/my_nginx:1.0
  • 然後登入docker.hub賬號
    • docker login
  • 最後就可以推送到自己的docker.hub遠端倉庫
    • docker image push repositoryname/my_nginx:1.0

埠對映

  • docker run --name my_nginx --rm -p 8080:80 nginx
    • -p 8080:80 埠對映 8080-宿主機埠 80-容器端埠 nginx-執行的映象 --name 給容器起名 my_nginx 容器名稱
    • 這樣我們就可以在外部使用 ip+埠訪問 容器my_nginx

資料卷掛載

  • docker run --name my_nginx --rm -d -v /root/test1:/root/test1 nginx
    • 將目錄test1資料夾掛載到容器的test1資料夾下 這樣即使容器被銷燬了容器裡的檔案也會儲存在我們的宿主機上
//使用exec命令進入容器
[root@iZuf620p8rsr3faul3zsx6Z ~]# docker exec -it my_nginx  bash
root@a87e160ee875:/# ls
bin   dev		   docker-entrypoint.sh  home  lib64  mnt  proc  run   srv  tmp  var
boot  docker-entrypoint.d  etc			 lib   media  opt  root  sbin  sys  usr
root@a87e160ee875:/# cd /root/
root@a87e160ee875:~# ls
test1
root@a87e160ee875:~# cd tst1
bash: cd: tst1: No such file or directory
root@a87e160ee875:~# cd test1
//進入test1 資料夾我們可以看到test1資料夾裡的內容和宿主機test1資料夾的內容是一樣的
root@a87e160ee875:~/test1# ls
1.txt  2.txt  b.txt
//在容器種建立一個新的檔案
root@a87e160ee875:~/test1# touch a.txt
root@a87e160ee875:~/test1# echo aaaaawqewqewq > a.txt
root@a87e160ee875:~/test1# ls
1.txt  2.txt  a.txt  b.txt
root@a87e160ee875:~/test1# cat a.txt
aaaaawqewqewq
root@a87e160ee875:~/test1# exit
exit
[root@iZuf620p8rsr3faul3zsx6Z ~]# cd test1
//退出容器 在宿主機中可以看到一樣的檔案 內容也是一樣的
[root@iZuf620p8rsr3faul3zsx6Z test1]# ls
1.txt  2.txt  a.txt  b.txt
[root@iZuf620p8rsr3faul3zsx6Z test1]# cat a.txt
aaaaawqewqewq