學(xué)習(xí)docker操作

1.安裝docker

安裝

yum install docker-io -y

查看版本

docker -v

啟動

service docker start

設(shè)置開機啟動

chkconfig docker on

2.配置docker

國內(nèi)訪問 Docker Hub 慢, 可用國內(nèi)鏡像源,本文用騰訊云的

設(shè)置docker庫

echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker
systemctl daemon-reload
service docker restart

3.docker實操

下載鏡像

docker pull centos

查看當前鏡像列表 (解釋列信息)

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos latest 75835a67d134 6 weeks ago 200 MB

拓展:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Size}}" 顯示指定列

運行容器

1.標準模式
docker run -it centos /bin/bash
docker run < 相關(guān)命令 > < 鏡像名稱 | 鏡像ID[IMAGE_ID] | 倉庫名:標簽名[REPOSITORY:TAG] > < 初始命令 >
-i 允許有命令交互
-t 在新容器內(nèi)指定一個偽終端
/bin/bash初始命令
2.后臺模式
docker run -d centos /bin/sh -c "while true; do echo hello world; sleep 1; done"
065354682b055e773ecb2c7482a8526c2b7d2b54c2ac0f69d40291a8989aab64
-d 后臺運行
3.掛載目錄
docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash
-v 掛載目錄 -v < 宿主機目錄 >:< 容器目錄 >
4.查看日志
docker logs 065354682b055e773ecb2c7482a8526c2b7d2b54c2ac0f69d40291a8989aab64
docker日志輸出到指定文件

停止容器

docker stop [ 啟動容器返回的key | 容器ID ]
docker stop 065354682b055e773ecb2c7482a8526c2b7d2b54c2ac0f69d40291a8989aab64

查看容器

  1. 查看當前運行的容器
    docker ps
    |CONTAINER ID |IMAGE |COMMAND |CREATED |STATUS |PORTS |NAMES |
    |--------------------|--------------------|--------------------|---------------------|----------------------------|--------------------|------------|
    |CONTAINER ID |IMAGE |COMMAND |CREATED |STATUS |PORTS |NAMES |
    |9b90b23597d2 |centos |"/bin/bash" |About a minute ago |Exited (0) 56 seconds ago | |epic_perlman|
  2. 查看歷史運行過的容器
    docker ps -a

刪除歷史運行過的容器信息

--殺死所有正在運行的容器
docker kill (docker ps -a -q) --刪除所有已經(jīng)停止的容器 docker rm(docker ps -a -q)
--刪除所有未打 dangling 標簽的鏡像
docker rmi (docker images -q -f dangling=true) --刪除所有鏡像 docker rmi(docker images -q)
--強制刪除鏡像名稱中包含“doss-api”的鏡像
docker rmi --force (docker images | grep doss-api | awk '{print3}')
--刪除所有未使用數(shù)據(jù)
docker system prune
--只刪除未使用的volumes
docker volume prune

提交docker

docker commit -m="提交信息" [imageid] [dockername]

打tag,repository:tag是自己定義的

docker tag [imageid] [repository]:[tag]

刪除tag

docker rmi [repository]:[tag]

刪除容器歷史docker ps -a內(nèi)數(shù)據(jù)

docker rm [container]

保存docker到img文件

docker save [] > xxx.imgs

加載img文件

docker load xxx.img

刪除某鏡像

docker rmi -f IMAGE huang/testimport:v1
docker rmi < 相關(guān)命令 > IMAGE < REPOSITORY:TAR >
-f 強制刪除

4.進入后臺運行的Docker的四種方式

docker exec -it [ CONTAINER | 775c7c9ee1e1 ] /bin/bash
docker exec < 相關(guān)命令 > < 當前運行的容器CONTAINER | 啟動容器時返回的Key > <初始命令>

5.宿主機與Docker交互

從宿主機拷文件到容器里面

docker cp jdk-7u55-linux-i586.tar.gz high_saha:/opt
docker cp <文件> <>:< 容器目錄 >

自動編譯/etc/source

在~/.bashrc內(nèi)

source /etc/profile

6.容器的導(dǎo)入導(dǎo)出,加載保存

1.根據(jù)容器ID創(chuàng)建鏡像

docker commit 75c6825032ee hry/testcrt:v2
容器ID可以在docker ps -a獲取到[CONTAINER ID]
docker import [tar文件] < REPOSITORY:TAR>

2.保存容器

docker save -o /java_docker-io_centos__java_use-save.tar docker.io/centos:java

3.加載容器

docker load < /java_docker-io_centos__java_use-save.tar

Docker部署程序

## dockerfile
## 定義使用哪個基礎(chǔ)鏡像
FROM docker.io/centos:java2

## 作者信息
MAINTAINER huangruiying

## COPY /resources/path/xxx.jar 
COPY regin-tools.jar /app.jar

## 運行
CMD java -jar /app.jar

## 設(shè)置對外端口
EXPOSE 8088
使用dockerfile生成當前項目的新的鏡像,"." 表示在當前目錄尋找dckerfile

docker build -t [REPOSITORY:TAG] .

啟動項目

docker run -p 8088:8088 -d --name regin-tools java_regin-tools:latest
docker run <-p [宿主機端口]:[容器端口]> <-d 表示后臺啟動> <--name [啟動的容器別名]> REPOSITORY:TAG

問題

  1. WARNING: IPv4 forwarding is disabled. Networking will not work.
# 宿主機運行:
vim  /usr/lib/sysctl.d/00-system.conf
# 在文件內(nèi)添加
net.ipv4.ip_forward=1
# 重啟服務(wù)
systemctl restart network
systemctl restart docker
  1. /usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: "java": executable file not found in $PATH".
# 在docker鏡像內(nèi)添加軟鏈到/usr/bin
ln -s /your/javahome/bin/java /usr/bin/
# 再重新生成下鏡像
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市肌厨,隨后出現(xiàn)的幾起案子黑忱,更是在濱河造成了極大的恐慌蹦疑,老刑警劉巖苞轿,帶你破解...
    沈念sama閱讀 212,294評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件千埃,死亡現(xiàn)場離奇詭異春叫,居然都是意外死亡亭螟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評論 3 385
  • 文/潘曉璐 我一進店門榆俺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來售躁,“玉大人,你說我怎么就攤上這事茴晋∨憬荩” “怎么了?”我有些...
    開封第一講書人閱讀 157,790評論 0 348
  • 文/不壞的土叔 我叫張陵诺擅,是天一觀的道長市袖。 經(jīng)常有香客問我,道長烁涌,這世上最難降的妖魔是什么苍碟? 我笑而不...
    開封第一講書人閱讀 56,595評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮烹玉,結(jié)果婚禮上驰怎,老公的妹妹穿的比我還像新娘。我一直安慰自己二打,他們只是感情好,可當我...
    茶點故事閱讀 65,718評論 6 386
  • 文/花漫 我一把揭開白布掂榔。 她就那樣靜靜地躺著继效,像睡著了一般症杏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瑞信,一...
    開封第一講書人閱讀 49,906評論 1 290
  • 那天厉颤,我揣著相機與錄音,去河邊找鬼凡简。 笑死逼友,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的秤涩。 我是一名探鬼主播帜乞,決...
    沈念sama閱讀 39,053評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼筐眷!你這毒婦竟也來了黎烈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,797評論 0 268
  • 序言:老撾萬榮一對情侶失蹤匀谣,失蹤者是張志新(化名)和其女友劉穎照棋,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體武翎,經(jīng)...
    沈念sama閱讀 44,250評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡烈炭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,570評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了宝恶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片符隙。...
    茶點故事閱讀 38,711評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖卑惜,靈堂內(nèi)的尸體忽然破棺而出膏执,到底是詐尸還是另有隱情,我是刑警寧澤露久,帶...
    沈念sama閱讀 34,388評論 4 332
  • 正文 年R本政府宣布更米,位于F島的核電站,受9級特大地震影響毫痕,放射性物質(zhì)發(fā)生泄漏征峦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,018評論 3 316
  • 文/蒙蒙 一消请、第九天 我趴在偏房一處隱蔽的房頂上張望栏笆。 院中可真熱鬧,春花似錦臊泰、人聲如沸蛉加。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,796評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽针饥。三九已至厂抽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丁眼,已是汗流浹背筷凤。 一陣腳步聲響...
    開封第一講書人閱讀 32,023評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留苞七,地道東北人藐守。 一個月前我還...
    沈念sama閱讀 46,461評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像蹂风,于是被迫代替她去往敵國和親卢厂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,595評論 2 350

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