docker基本操作

docker基本

1.換源

vi /etc/docker/daemon.json

"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]

2.拉取并啟動(dòng)容器

docker以u(píng)buntu15.10鏡像創(chuàng)建一個(gè)新容器,然后在容器里執(zhí)行/bin/echo 'test',輸出結(jié)果

docker run ubuntu:15.10 /bin/echo 'test'

docker進(jìn)入終端模式 -i輸入流 -t打開(kāi)終端

docker run -i -t ubuntu:15.10 /bin/bash

exit退出終端,退出容器

后臺(tái)模式啟動(dòng)容器

docker run -d ubuntu:15.10 /bin/sh -c "sleep test"

查看后臺(tái)運(yùn)行容器

docker ps

  • container id:容器id

  • image:使用的鏡像

  • command:啟動(dòng)容器時(shí)運(yùn)行的命令

  • created:容器的創(chuàng)建時(shí)間

  • status:容器狀態(tài)

    • created(已創(chuàng)建)
    • restarting(重啟中)
    • running或up(運(yùn)行中)
    • removing(遷移中)
    • paused(暫停)
    • exited(停止)
    • dead(死亡)
  • ports:容器的端口信息和使用的連接類(lèi)型(tcp/udp)

  • names:自動(dòng)分配的容器名稱(chēng)

docker logs (commonid/name)查看容器內(nèi)的標(biāo)準(zhǔn)輸出

docker logs 1231313

docker stop (commonid/name)停止容器

3.容器使用

獲取鏡像

docker pull ubuntu

使用ubuntu鏡像啟動(dòng)一個(gè)容器

docker run -it ubuntu /bin/bash

參數(shù)說(shuō)明:

 -i:交互式操作
 -t:終端
 ubuntu:ubuntu鏡像
 /bin/bash:放在鏡像后的命令,進(jìn)入終端bash命令
 退出終端 exit

啟動(dòng)已停止運(yùn)行的容器

查看所有的容器命令

docker ps -a

使用docker start (commonid/name)啟動(dòng)一個(gè)已停止的容器

docker start b750bbbcfd88

進(jìn)入一個(gè)已啟動(dòng)的容器

docker attach b750bbbcfd88

后臺(tái)運(yùn)行-d,加了-d參數(shù)默認(rèn)不會(huì)進(jìn)入容器,想要進(jìn)入容器需要使用docker exec

docker run -itd --name ubuntu-test ubuntu /bin/bash

docker exec -it 123133 /bin/bash

停止一個(gè)容器

docker stop commonid

重啟容器

docker restart commonid

進(jìn)入容器

加-d參數(shù),容器進(jìn)入后臺(tái),可以使用下面的命令進(jìn)入容器

docker attach commonid

docker exec commonid 退出容器終端,不會(huì)導(dǎo)致容器停止

4.導(dǎo)出和導(dǎo)入容器

導(dǎo)出容器

docker export commonid > ubuntu.tar

導(dǎo)入容器快照為鏡像

docker import ubuntu.tar ubuntu:1510

docker import http://example.com/exampleimage.tgz example/imagerepo

查看鏡像

docker images

刪除鏡像

docker image rm name:tag

刪除容器

docker rm -f commonid

清理掉所有處于終止?fàn)顟B(tài)的容器

docker container prune

5.運(yùn)行一個(gè)web應(yīng)用

docker pull training/webapp 載入鏡像

-d讓容器后臺(tái)運(yùn)行

-P將容器內(nèi)部使用的網(wǎng)絡(luò)端口隨機(jī)映射到我們使用的主機(jī)上

docker run -d -P training/webapp python app.py

docker run -d -p 5000:5000 training/webapp python app.py

查看后臺(tái)運(yùn)行狀態(tài)

docker ps

查看容器端口

docker port commonid

查看web應(yīng)用日志

docker logs -f commonid

查看web應(yīng)用容器的進(jìn)程

docker top commonid

使用docker inspect查看docker底層信息

docker inspect name

docker ps -l查詢(xún)最后一次創(chuàng)建的容器

docker鏡像使用

列出鏡像列表

docker images

使用鏡像運(yùn)行容器

docker run -tid ubuntu:15.10 /bin/bash

獲取一個(gè)新的鏡像

docker pull ubuntu:13.10

使用鏡像運(yùn)行容器

docker run -tid ubuntu:13.10 /bin/bash

查找鏡像

docker search httpd

運(yùn)行鏡像

docker run httpd

刪除鏡像

docker rmi httpd

創(chuàng)建鏡像

1. 從已經(jīng)創(chuàng)建的容器中更新鏡像,并且提交這個(gè)鏡像
2. 使用dockerfile指令來(lái)創(chuàng)建一個(gè)新的鏡像
更新鏡像
    1.  使用鏡像來(lái)創(chuàng)建一個(gè)容器,在容器中使用apt-get update更新,exit退出容器

    2.  換源更新下載vim 
 
    mv /etc/apt/sources.list /etc/apt/sources.list.bak
    echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >> /etc/apt/sources.list
    echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
    echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
    echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list 
    
    docker run -it ubuntu:15.10 /bin/bash

    -m:提交的描述信息 -a:指定鏡像作者 1231123:容器id runoob/ubuntu:v1:指定要?jiǎng)?chuàng)建的目標(biāo)鏡像名
    
    docker commit -m="update" -a="runoob" 131313 runoob/ubuntu:v1
    
    docker tag ivan/gcc:v1 843741683/gcc:v1
    
    docker push 843741683/gcc:v1
    
    docker images 
    
    查看更新的鏡像
構(gòu)建鏡像
    docker build 創(chuàng)建一個(gè)Dockerfile告訴docker如何構(gòu)建我們的鏡像

    
    FROM centos:6.7
    RUN /bin/echo 'root:123456'|chpasswd
    RUN useradd runoob
    RUN /bin/echo 'runoob:123456'|chpasswd
    RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" > /etc/default/local
    EXPOSE 22
    EXPOSE 80
    CMD /usr/sbin/sshd -D 
    

    -t:指定要?jiǎng)?chuàng)建的目標(biāo)鏡像名 
    .:dockerfile文件所在的目錄
    docker build -t runoob/centos:6.7 .
    docker images
    docker run -it runoob/centos:6.7 /bin/bash
設(shè)置鏡像標(biāo)簽
    docker tag commonid runoob/centos:dev

6.docker容器鏈接

1.網(wǎng)絡(luò)端口映射

-P:是容器內(nèi)部端口隨機(jī)映射到主機(jī)的高端口

-p:是容器內(nèi)部端口綁定到指定的主機(jī)端口

指定ip端口udp

docker run -d -P training/webapp python app.py

docker ps

docker run -d -p 5000:5000 training/webapp python app.py

docker run -d -p 127.0.0.1:5001:5000/udp training/webapp python app.py

docker port name 5000

2.docker 容器互聯(lián)

docker連接會(huì)創(chuàng)建一個(gè)父子關(guān)系,其中 父容器可以看到子容器的信息

容器命名 --name

docker run -d -P --name runoob training/webapp python app.py

docker ps -l

3.新建網(wǎng)絡(luò)

-d:參數(shù)指定docker網(wǎng)絡(luò)類(lèi)型,有bridge.overlay

docker network create -d bridge test-net

docker network ls

docker run -itd --name test1 --network test-net ubuntu /bin/bash

docker run -itd --name test2 --network test-net ubuntu /bin/bash

apt-get update 

apt install iputils-ping

docker exec -it test1 /bin/bash

ping test2

配置dns

查看容器dns信息

docker run -it --rm  ubuntu cat etc/resolv.conf

-rm:容器退出時(shí)自動(dòng)清理容器內(nèi)部的文件系統(tǒng)

-h hostname或者--hostname=HOSTNAME:設(shè)定容器的主機(jī)名,它會(huì)被寫(xiě)到容器內(nèi)的/etc/hostname和/etc/hosts

--dns=ip_address:添加dns服務(wù)器到容器的/etc/resolv.conf,讓容器用這個(gè)服務(wù)器來(lái)解析所有不在/etc/hosts中的主機(jī)名

--dns-search=DOMAIN:設(shè)定容器的搜索域,當(dāng)設(shè)定搜索域?yàn)?com

docker run -it --rm -h host_ubuntu --dns=114.114.114.114 --dns-search=test.com ubuntu

7.docker倉(cāng)庫(kù)管理

docker hub

docker login

docker logout 

docker search ubuntu

docker pull ubuntu

docker image ls

docker push ubuntu:18.10

docker search ubuntu:18.10

8.使用Dockerfile定制鏡像

FROM centos
RUN yum install wget
&& wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
&& tar -xvf redis.tar.gz

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Docker架構(gòu)總覽 最核心的是 Docker Daemon 我們稱(chēng)之為 Docker 守護(hù)進(jìn)程,也就是 Serv...
    河碼匠閱讀 449評(píng)論 0 1
  • Docker是一個(gè)輕量級(jí)的基于進(jìn)程的虛擬化解決方案。簡(jiǎn)單來(lái)說(shuō),Docker是將應(yīng)用程序和運(yùn)行環(huán)境一起打包成一個(gè)容器...
    Summer_1981閱讀 518評(píng)論 0 0
  • 基本命令 啟動(dòng)容器$ docker run IMAGE [COMMAND] [ARG...]run 在新容器中執(zhí)行...
    蕭格閱讀 550評(píng)論 0 0
  • docker基本命令 有道云筆記鏈接 鏡像 下載鏡像 命令:docker pull [name][:tag] 如:...
    熱血123閱讀 376評(píng)論 0 3
  • # docker基本操作 ## 鏡像操作 ### 獲取鏡像 從Docker Hub搜索鏡像: docker s...
    wangkai333閱讀 200評(píng)論 0 0

友情鏈接更多精彩內(nèi)容