docker 使用總結 win10

docker的數(shù)據(jù)位置及安裝位置

  • docker默認的安裝位置是在:"C:\Program Files\Docker"
  • 數(shù)據(jù)位置晃跺,包括鏡像位置(wsl2)及docker桌面的位置是在:C:\Users\Administrator\AppData\Local\Docker
  • 由于docker所耗存儲是大的掀虎,且隨鏡像的增多而增大,所以不能放在C盤春霍,但是: 網(wǎng)上直接遷移docker使用的wsl2所在位置址儒,或者直接軟鏈數(shù)據(jù)位置(或\wsl\data):都將使docker desktop無法打開或閃退
  • 遂在安裝之前莲趣,直接將上面兩個目錄都完整軟鏈喧伞;然后再安裝docker desktop
mklink /j "C:\Users\Administrator\AppData\Local\Docker" "F:\Docker"
mklink /j "C:\Program Files\Docker" "F:\Program Files\Docker"
mklink /j "C:\Users\Administrator\AppData\Roaming\Docker" "F:\Roaming\Docker"
mklink /j "C:\Users\Administrator\AppData\Roaming\Docker Desktop" "F:\Roaming\Docker Desktop"
  • 隔了幾天潘鲫,好像又閃退溉仑,無語

mysql

  • powershell中拉鏡像
docker pull mysql
  • 創(chuàng)建并啟動容器
docker run -p 3307:3306 --name mysql --privileged=true -v /g/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=來個密碼  -d mysql
  • 兼容之前版本的密碼認證浊竟,需要進入容器,root登錄mysql后频;做以下操作徘郭,主機客戶端才能連接
CREATE USER '來個用戶'@'%' IDENTIFIED BY '來個密碼';
GRANT ALL ON *.* TO '上面的用戶'@'%';
ALTER USER '上面的用戶'@'%' IDENTIFIED BY '來個密碼' PASSWORD EXPIRE NEVER;
# 可以修改密碼
# ALTER USER '上面的用戶'@'%' IDENTIFIED WITH mysql_native_password BY '換個密碼';
flush privileges;

PS:如果出現(xiàn)下面這個錯誤残揉,等一會就行

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

redis

  • 拉鏡像
docker pull redis
  • 運行容器
docker run -p 6380:6379 --name redis -v /g/docker/redis/conf:/etc/redis/redis.conf  -v /g/docker/redis/data:/data  -v /g/docker/redis/persist_data:/persist_data -d redis redis-server /etc/redis/redis.conf/redis.conf

確保主機中的掛載目錄存在

redis-server 指定的是文件,而非目錄

其中redis的配置G:\docker\redis\conf\redis.conf

# 注釋掉這部分,使redis可以外部訪問镇草;否則外部訪問將報錯EOF
# bind 127.0.0.1 
# 用守護線程的方式啟動
daemonize no
# 給redis設置密碼
requirepass q123456we
# AOF持久化開啟,默認是no
appendonly yes
# 更改本地redis數(shù)據(jù)庫存放文件夾(可選)
dir /persist_data
# 防止出現(xiàn)遠程主機強迫關閉了一個現(xiàn)有的連接的錯誤,默認是300
tcp-keepalive 300 
# AOF持久化配置
appendfsync everysec
# RDB持久化關閉,默認是no
save ""

dockerfile 構建

目錄

?  /workspace tree .
.
├── Dockerfile
├── download
│   ├── go1.18.3.linux-amd64.tar.gz
│   ├── protoc
│   │   ├── bin
│   │   ├── include
│   │   └── readme.txt
│   └── protoc.tar.gz
├── run.sh
└── zshrc_tmp

命令(注意最后的點)

docker build -f Dockerfile -t workspace:go .

dockerfile 部分代碼

FROM ubuntu:18.04

LABEL Author="yiwei.duan@outlook.com" Description="This image is ubuntu:20.04 with common software." Version="1.0"

WORKDIR /workspace

RUN echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" > /etc/apt/sources.list \
    && echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >> /etc/apt/sources.list \
    && echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >> /etc/apt/sources.list \
    && echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >> /etc/apt/sources.list \
    && echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >> /etc/apt/sources.list \
    && echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >> /etc/apt/sources.list \
    && echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >> /etc/apt/sources.list \
    && echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >> /etc/apt/sources.list \
    && echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >> /etc/apt/sources.list \
    && echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >> /etc/apt/sources.list

RUN apt-get update \
        && apt-get install -y openssh-server \
    && mkdir /var/run/sshd \
    && echo 'root:來個密碼' | chpasswd \
    && echo "PermitRootLogin no " >> /etc/ssh/sshd_config \
    && echo "PasswordAuthentication yes " >> /etc/ssh/sshd_config \
    && echo "PubkeyAuthentication yes " >> /etc/ssh/sshd_config \
    && echo "來個新用戶名 ALL=(ALL) ALL" >> /etc/sudoers

ADD run.sh /
RUN chmod +x /run.sh
CMD ["/run.sh"]

TIPS:

出現(xiàn) unexpected EOF因宇,可能是電腦或者網(wǎng)絡不太行察滑,直接繼續(xù)執(zhí)行之前的命令贺辰。

如果饲化,emmm滓侍,比如撩笆,A容器使用過了2222端口進行了ssh連接夕冲,但之后將A刪除了歹鱼,新建B容器弥姻,也使用2222端口庭敦,需要將~/.ssh/known_hosts中的那條 [127.0.0.1]:2222刪除

dockerfile中使用CMD秧廉,如下疼电,容器無法啟動蔽豺;但sh文件單獨執(zhí)行是成功的茫虽,這時將run.sh中最后追加 " su root "即可

ADD run.sh /
RUN chmod +x /run.sh
CMD ["/run.sh"]

dockerfile中無交互生成ssh濒析,并將本地公鑰寫進autthorized_key

RUN ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa \
    && touch ~/.ssh/authorized_keys \
    && chmod 600 ~/.ssh/authorized_keys \
    && chmod 700 ~/.ssh \
    && echo "主機公鑰号杏,位置在~/.ssh/id_rsa.pub" >>  ~/.ssh/authorized_keys

dockerfile中生成登錄git的ssh

RUN ssh-keygen -t rsa -C "github郵箱" -P "" -f ~/.ssh/docker_rsa \
    && touch ~/.ssh/config \
    && echo "Host github.com\n\tHostName github.com\n\tPreferredAuthentications publickey\n\tIdentityFile ~/.ssh/docker_rsa\n\tUser duan1v" >> ~/.ssh/config 
  • 到github中 New SSH key
  • 測試連接git
ssh -T git@github.com

主機使用vscode主经;配置~/.ssh/config

Host 來個名字
    HostName 127.0.0.1
    User docker用戶名
    Port docker端口

dockerfile無交互創(chuàng)建新用戶

RUN useradd 來個用戶名 -m \
    && echo "來個密碼\n重復密碼" | passwd 上面那個用戶名 \
    && usermod -a -G 上面那個用戶名,sudo 上面那個用戶名 

docker 推送鏡像

  • 先創(chuàng)建倉庫罩驻,創(chuàng)建之后可以看到惠遏,倉庫名 是以"docker用戶名/"為前綴的,還有一部分是自定義的透绩,記住這個倉庫名帚豪;自定義部分可以取狸臣,需要推送的那個鏡像名就好固棚,不用加TAG

https://hub.docker.com/repositories

  • 主機powershell
PS C:\Users\Administrator\Desktop> docker login 
Authenticating with existing credentials...
Login Succeeded
  • 將需要上傳的 鏡像A:A的TAG 重新生成一個與倉庫名同名的鏡像
docker tag 鏡像A:A的TAG 倉庫名:A的TAG
  • 最后push一下
docker push 倉庫名:A的TAG

容器使用主機的vpn此洲,dockerfile中添加

ENV https_proxy="http://host.docker.internal:主機的代理端口" \
    http_proxy="http://host.docker.internal:主機的代理端口" \
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市汁汗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌角寸,老刑警劉巖忿墅,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亿柑,死亡現(xiàn)場離奇詭異望薄,居然都是意外死亡式矫,警方通過查閱死者的電腦和手機采转,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門板熊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來察绷,“玉大人干签,你說我怎么就攤上這事〔鸷常” “怎么了容劳?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長闸度。 經(jīng)常有香客問我,道長莺禁,這世上最難降的妖魔是什么留量? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮哟冬,結果婚禮上楼熄,老公的妹妹穿的比我還像新娘。我一直安慰自己浩峡,他們只是感情好可岂,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著翰灾,像睡著了一般青柄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上预侯,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天致开,我揣著相機與錄音,去河邊找鬼萎馅。 笑死双戳,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的糜芳。 我是一名探鬼主播飒货,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼峭竣!你這毒婦竟也來了塘辅?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤皆撩,失蹤者是張志新(化名)和其女友劉穎扣墩,沒想到半個月后哲银,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡呻惕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年荆责,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片亚脆。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡做院,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出濒持,到底是詐尸還是另有隱情键耕,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布柑营,位于F島的核電站郁竟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏由境。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一蓖议、第九天 我趴在偏房一處隱蔽的房頂上張望虏杰。 院中可真熱鬧,春花似錦勒虾、人聲如沸纺阔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笛钝。三九已至,卻和暖如春愕宋,著一層夾襖步出監(jiān)牢的瞬間玻靡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工中贝, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留囤捻,地道東北人。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓邻寿,卻偏偏與公主長得像蝎土,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绣否,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容