2022年3月28日 星期一

github + sourcetree window10

記錄一下 github 搭配 sourcetree 常遇到的問題






 之前就搞了一次ssh因為某天開始就不支援傳統帳號密碼存取

沒想到最近又來一次

即使是ssh,RSA key也不支援

所以又要重弄一次








首先就去建立一個新的ssh key吧

如上圖,在 sourcetree 裡面就可以

打開後記得下面不能選RSA

如下圖這裡是選ECDSA










按下Generate之後稍微滑動一下滑鼠就可以建立key

Public key就自己找個記事本複製貼上存起來

(我選Save public key存起來的檔案反而不能給github用)

Private key的話他會建議你加個密碼然後選Save private key存起來

然後去github網頁,右上角個人圖示,再選設定









選New ssh key,然後把剛才public key複製貼上後save

再來到電腦右下角找到Pageant






點開後如下圖








點選Add key之後選擇剛才存檔的private key

如果你剛才有設定密碼的話他會要你輸入密碼

到這邊就算是完成了

再來去github網頁選擇你要clone的project






一開始還以為要用ssh那欄,結果要用https的url,sourcetree才會讓我抓

其實這一整套做完也真夠麻煩

好像可以直接用github desktop取代就好了

說不定是github想推他們自家的軟體


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日 星期四

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