docker筆記

安裝docker

1.注意安裝ce

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

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum install -y docker-ce-18.09.7 docker-ce-cli-18.09.7 containerd.io

systemctl enable docker

systemctl start docker

2.編輯daemon.json,添加鏡像地址

vi /etc/docker/daemon.json
添加以下代碼:
{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]}

systemctl daemon-reload

systemctl restart docker

3.啟動與停止docker

開啟:systemctl start docker 
狀態(tài):systemctl status docker 
停止:systemctl stop docker    
重啟:systemctl restart docker 
開機啟動:systemctl enable docker 
查看概要:docker --help

4.鏡像相關(guān)命令

查看鏡像:docker images
搜索鏡像:docker search centos
拉取鏡像:docker pull centos:7
刪除鏡像:docker rmi 鏡像ID
刪除所有鏡像:docker rmi `docker images -q`

5.容器相關(guān)命令

查看正在運行的容器:docker ps
查看所有容器:docker ps -a
查看最后一次運行的容器:docker ps -l
查看停止的容器:docker ps -f status=exited
創(chuàng)建容器:docker run 
    (1)交互式方式創(chuàng)建容器:
        docker run -it --name=容器名稱 鏡像名稱:標簽 /bin/bash
        docker run -it --name=mycentos centos:7 /bin/bash 之后會進入容器內(nèi)
        退出當(dāng)前容器:exit但荤,當(dāng)退出条篷,容器自動停止
     (2)守護式方式創(chuàng)建容器:
        docker run -di --name=容器名稱 鏡像名稱:標簽
        docker run -di --name=mycentos2 centos:7 之后不會進入容器內(nèi)
        進入方式:docker exec -it mycentos2 /bin/bash
        退出當(dāng)前容器:exit剿牺,當(dāng)退出,容器還在運行
停止與啟動容器:docker stop/start
     (1)停止:docker stop 容器名稱(或者容器ID)
             docker stop centos2
     (2)啟動:docker start 容器名稱(或者容器ID)
             docker start centos2
文件拷貝:
     (1)文件拷貝到容器:docker cp 需要拷貝的文件或目錄 容器名稱:容器目錄
                      docker cp daemon.json mycentos2:/usr/local
     (2)文件從容器拷貝出來:docker cp 容器名稱:容器目錄 需要拷貝的文件或目錄
                          docker cp mycentos2:/usr/local/daemon.json daemon.json
目錄掛載:
    創(chuàng)建容器 添加-v參數(shù) 后面為 宿主機目錄:容器目錄,例如:
    docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7
查看容器的ip地址:
    docker inspect 容器名稱(容器id)
    docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名稱(容器id)
刪除容器:
    docker rm 容器名稱(容器id)

6.應(yīng)用部署

6.1 mysql部署

(1)拉取mysql鏡像
    docker pull centos/mysql-57-centos7
(2)創(chuàng)建容器
    docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7 --lower_case_table_names=1
(3)進入mysql容器
    docker exec -it tensquare_mysql /bin/bash
(4)登錄mysql
    mysql -u root -p
(5)遠程登錄mysql:連接宿主機ip竭贩,指定端口為33306
    mysql-8.0.x連接報錯問題:https://www.cnblogs.com/zhurong/p/9898675.html

6.2 tomcat部署

(1)拉取tomcat鏡像
    docker pull tomcat:7-jre7
(2)創(chuàng)建容器
    docker run -di --name=mytomcat -p 80:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat
(3)發(fā)布應(yīng)用
    cd /usr/local/webapps

6.3 Nginx部署

(1)拉取
    docker pull nginx
(2)創(chuàng)建容器
    docker run -di --name=mynginx -p 80:80 nginx
(3)發(fā)布應(yīng)用
    docker exec -it mynginx /bin/bash
    cd /etc/engix
    cat nginx.conf
    /etc/nginx/conf.d#
    docker cp myhtml mynginx:/usr/share/nginx/

6.4 Redis部署

(1)拉取
    docker pull redis
(2)創(chuàng)建容器
    docker run -di --name=redis -p 6379:6379 redis

7.遷移與備份

(1)容器保存為鏡像:
    docker commmit mynginx mynginx_i
(2)鏡像備份
    docker save -o mynginx.tar mynginx_i
(3)鏡像回復(fù)與遷移
    docker load -i mynginx.tar
    執(zhí)行后再次查看鏡像瑞躺,可以看到鏡像已經(jīng)恢復(fù)

8.Dockerfile

8.1 Dockerfile 常用命令:

1)FROM  : FROM 鏡像指令指明了當(dāng)前鏡像繼承的基鏡像敷搪,編譯當(dāng)前鏡像時會自動下載基鏡像 ,如果不指定映像url 則從docker hub 上獲取。 e.g : FROM ubuntu 
2)MAINTAINER :MAINTAINER 指令 指定了當(dāng)前鏡像的作者及聯(lián)系方式幢哨。e.g : MAINTAINER: caiqiufang
3)RUN : RUN 指令可以在當(dāng)前鏡像上執(zhí)行Linux  命令并形成一個新的層赡勘,RUN 是編譯時(build) 的動作,在docker 命令中運行的shell 命令,等價于docker run <image> <command> 示例可以是如下兩種,CMD 和 ENTRYPOINT也是如此 e.g : RUN /bin/bash -c "echo helloworld"    or   RUN {"/bin/bash", "-c" ,"echo helloworld"}
4)CMD : CMD 指令指明了啟動鏡像容器時的默認行為(docker 容器運行時的默認命令)捞镰,一個Dockerfile 里只有一個CMD 指令闸与,CMD 指令里設(shè)定的命令可以在運行鏡像時使用參數(shù)覆蓋,CMD 是 運行時(run)的動作岸售。 e.g :  CMD echo "this is a test"  正如上所說可以被運行時的參數(shù)覆蓋践樱,如下: docker  run -d imag_name echo "this is not a test"。
5)EXPOSE : 指明了鏡像運行時的容器必須監(jiān)聽的端口  e.g : EXPOSE 8080
6) ENV : 用來設(shè)置環(huán)境變量  e.g :  ENV myname = caiqiufang   or ENV myname  caiqiufang凸丸。
7)ADD : ADD 指令是指從當(dāng)前工作目錄復(fù)制文件到鏡像目錄中去拷邢。 e.g : ADD test.txt   /mydir/
8) ENTRYPOINT : ENTRYPOINT 指令可以讓容器像一個可執(zhí)行程序一樣運行,這樣鏡像運行時可以像軟件一樣 接收參數(shù)執(zhí)行屎慢。ENTRYPOINT 是運行(run)時的動作  e.g : ENTRYPOINT {"/bin/echo"}  ,那么我們可以向鏡像傳遞參數(shù)運行 docker run  -d image_name  "this is a test"
9) WORKDIR <path>: 指定RUN, CMD, ENTRYPOINT  等命令運行的工作路徑 

8.2 使用腳本創(chuàng)建鏡像

sudo docker pull centos:centos7
sudo cd /usr/local/src
sudo tar zxf jdk-8u201-linux-x64.tar.gz
sudo ls
    jdk1.8.0_201  jdk-8u201-linux-x64.tar.gz
sudo mkdir /usr/local/jdk
sudo cd /usr/local/jdk
sudo cp ../src/jdk-8u201-linux-x64.tar.gz ./
sudo ls
    jdk-8u201-linux-x64.tar.gz
sudo vi Dockerfile
    FROM centos:centos7
    MAINTAINER tom
    RUN mkdir /usr/local/jdk
    WORKDIR /usr/local/jdk
    ADD jdk-8u201-linux-x64.tar.gz /usr/local/jdk
    ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_201
    ENV JRE_HOME /usr/local/jdk/jdk1.8.0_201/jre
    ENV PATH $JAVA_HOME/bin:$PATH
sudo docker build -t jdk1.8 .       

8.3 Docker私有倉庫

https://www.cnblogs.com/naixin007/p/10952813.html
(1)拉取私有倉庫鏡像
    docker pull registry
(2)啟動私有倉庫
    docker run -di --name=registry -p 5000:5000 registry
(3)打開瀏覽器輸入:http://192.168.133.10:5000/v2/_catalog看到{"repositories":[]}表示私有倉庫搭建成功瞭稼,并且為空
(4)修改daemon.json
    vi /etc/docker/daemon.json
    添加以下內(nèi)容,保存退出,此步用于讓docker信任私有倉庫
    {"insecure-registries":["192.168.133.10:5000"]}
(5)重啟docker服務(wù)
    systemctl restart docker

8.4 Docker私有倉庫鏡像上傳

(1)給鏡像打標簽
    docker tag jdk1.8 192.168.133.10:5000/jdk1.8
(2)上傳鏡像
    docker push jdk1.8 192.168.133.10:5000/jdk1.8
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末腻惠,一起剝皮案震驚了整個濱河市弛姜,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌妖枚,老刑警劉巖廷臼,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異绝页,居然都是意外死亡荠商,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門续誉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來莱没,“玉大人,你說我怎么就攤上這事酷鸦∈味悖” “怎么了牙咏?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嘹裂。 經(jīng)常有香客問我妄壶,道長,這世上最難降的妖魔是什么寄狼? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任丁寄,我火速辦了婚禮,結(jié)果婚禮上泊愧,老公的妹妹穿的比我還像新娘伊磺。我一直安慰自己,他們只是感情好删咱,可當(dāng)我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布屑埋。 她就那樣靜靜地躺著,像睡著了一般痰滋。 火紅的嫁衣襯著肌膚如雪雀彼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天即寡,我揣著相機與錄音徊哑,去河邊找鬼。 笑死聪富,一個胖子當(dāng)著我的面吹牛莺丑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播墩蔓,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼梢莽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奸披?” 一聲冷哼從身側(cè)響起昏名,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎阵面,沒想到半個月后轻局,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡样刷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年仑扑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片置鼻。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡镇饮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出箕母,到底是詐尸還是另有隱情储藐,我是刑警寧澤俱济,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站钙勃,受9級特大地震影響蛛碌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜肺缕,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望授帕。 院中可真熱鬧同木,春花似錦、人聲如沸跛十。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芥映。三九已至洲尊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奈偏,已是汗流浹背坞嘀。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留惊来,地道東北人丽涩。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像裁蚁,于是被迫代替她去往敵國和親矢渊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,658評論 2 350

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