顯示具有 tutorial 標籤的文章。 顯示所有文章
顯示具有 tutorial 標籤的文章。 顯示所有文章

2022年3月27日 星期日

打包Container image

 1. 目錄結構


2. 新增Dockerfile

vi Dockerfile

按 i

新增以下內容

FROM centos:centos7.9.2009

COPY ctpn /appc/ctpn/

COPY debug /appc/debug

COPY models /appc/models

COPY yolo /appc/yolo

COPY type_recognizer /appc/

RUN yum -y install libxcb

WORKDIR /appc


3. 打包Image

docker build -t appm3 .

-t    tag,等於替image取個名字,

注意最後面還有一個    " . "  這不能少,應該是表示當前目錄的意思


4. 執行 

docker image ls

docker run -it appm3 bash


5. 在docker中執行httpd

docker run -d -it --privileged {Image ID} /usr/sbin/init

















2022年3月22日 星期二

如何複製資料到container裡面

1. 列出正在運行的container

docker ps

example

[root@DESKTOP-B31T57O dist]# docker ps

CONTAINER ID   IMAGE                   COMMAND   CREATED             STATUS             PORTS     NAMES

ddf6ad58f1ea   centos:centos7.9.2009   "bash"    About an hour ago   Up About an hour             kind_perlman

2.  查詢完整container id

docker inspect -f   '{{.Id}}'  SHORT_CONTAINER_ID-or-CONTAINER_NAME

example

[root@DESKTOP-B31T57O dist]# docker inspect -f   '{{.Id}}' kind_perlman

ddf6ad58f1eab9186e761afac45890bc2543e7a353d7cec3d323560b02d960a0

3. 從host copy 檔案到container

sudo cp path-file-host /var/lib/docker/aufs/mnt/FULL_CONTAINER_ID/PATH-NEW-FILE
example
docker cp type_recognizer e0746a7a15e56c9b906919c909d27644d4a7d900e1d8a12478e8c74bf064b89f:/type_recognizer
這樣會copy到container的根目錄下面
如果要copy到container的home下面
docker cp type_recognizer e0746a7a15e56c9b906919c909d27644d4a7d900e1d8a12478e8c74bf064b89f:/home/type_recognizer


4. 直接開一個互相連結的資料夾

docker volume create --name appa

而在host的位置是

/var/lib/docker/volumes/appa/_data/

在啟動時加一個 -v 參數,就可以指定 volume 要跟容器內哪一個資料夾連通

docker run -v appa:/appb -it centos:centos7.9.2009 bash

上面的appa表示在host時的名稱

而/appb表示在container裡面的資料夾路徑

也可以寫成/ox/appb,這樣在根目錄下就會有一個ox資料夾裡面放著appb資料夾

而appb資料夾裡面放的東西就會是在本機appa資料夾裡面的東西









2022年3月17日 星期四

CentOS 7.9 基本操作 Docker/Container

 

先切換到 root

1. 安裝 yum-utils

yum install -y yum-utils device-mapper-persistent-data lvm2


2. 設定 repository

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo


3. 安裝 Docker CE

yum install docker-ce

出現error

打開 etc/yum.repos.d/docker-ce.repo

將 $releasever全部改7

例如

baseurl=https://download.docker.com/linux/centos/$releasever/source/stable

改成

baseurl=https://download.docker.com/linux/centos/7/source/stable

重新輸入

yum install docker-ce

檢查docker版本

docker version

4. 啟動 Docker

systemctl start docker

5. 測試 Docker

docker run hello-world

6. 設定開機自動啟動 Docker

systemctl enable docker

停止

systemctl stop docker

重啟

systemctl restart docker

狀態

systemctl status docker


7. 錯誤處理

重開機後遇到

Cannot connect to the Docker daemon at unix:/var/run/docker.sock. Is the docker daemon running?

解答

You can try out this: 

systemctl start docker

It worked fine for me.


P.S.: after if there is commands that you can't do without sudo, try this:

gpasswd -a $USER docker

8. 下載、執行Image

docker pull centos

上面那行會抓到centos 8
如果要指定版本7.9

docker pull centos:centos7.9.2009

列出 image list

docker image ls

執行

docker run -it centos:centos7.9.2009 bash

印出目前執行版本

cat /etc/*release