Linux安裝docker及docker的基本操作總結

本篇文章給大家帶來了關于linux上怎樣安裝docker以及docker的基本操作,希望對大家有幫助。

Linux安裝docker及docker的基本操作總結

一.安裝docker

Docker要求運行在centos 7上,要求系統為64位,系統內核版本3.10以上

1.uname -an?查看當前系統版本

2.yum -y install docker 下載安裝docker

3.service docker start ?啟動docker服務

4.docker version ?檢查docker是否安裝成功

當看到下圖的信息,就是表示本機docker已經安裝成功,很簡單?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Linux安裝docker及docker的基本操作總結

二.鏡像操作

創建容器要以鏡像為基礎,所以先講下docker鏡像的操作

搜索鏡像

docker images ll 查看下本機的是否已經有了鏡像

目前機器里還沒有鏡像,去Docker Hub下載(鏡像還可自定義,這里就不細說了)

docker search Java ?,還能指定具體的版本進行下載,

例如:docker search ?ubuntu:1.2.5.4,可以進行搜docker Hub 會列出很多鏡像?

Linux安裝docker及docker的基本操作總結

下載鏡像?

docker pull docker.io/nginx 進行下載

下載到本地的鏡像要比docker Hub上搜索出來的要大,因為下載過程中自動解壓了,在查看鏡像列表就有了剛才下載的鏡像

列表包含了倉庫名,版本標簽,鏡像ID,創建時間以及所占用的空間

Linux安裝docker及docker的基本操作總結

刪除鏡像

刪除沒用的鏡像docker rmi鏡像id

Linux安裝docker及docker的基本操作總結

三.鏡像的創建與管理

前邊我們已經下載好了Nginx的鏡像,接下來我們就創建一個只有Nginx應用的容器docker run -i -t /bin/bash:-i:標準輸入給容器 -t:分配一個虛擬終端 /bin/bash:執行bash腳本,

docker?run?-idt?--name?container_nginx?-p?8080:80??docker.io/nginx

啟動一個使用鏡像docker.io/nginx,名字container_nginx的容器,-p 8080:80表示將容器的80端口映射到主機的8080端口,這樣我們只要訪問主機的8080端口就可以訪問到容器的服務了。

注意:name前面是兩個-, 端口前面有-p, docker.io/nginx是鏡像名,8080是主機的端口,80是Nginx應用的端口

主機上的一個端口只能映射一個容器端口,不可以多個容器端口對應一個主機端口(如果容器安裝的centos類的系統,那么容器端口隨便設定,但如果容器內只是單純的應用,那么容器端口要是應用自身的端口)

Linux安裝docker及docker的基本操作總結

這樣我們就創建并啟動了一個容器!

exit?退出容器  docker?ps?查看運行中的容器  docker?ps?-a??查看運行中和非運行中的所有容器  docker?exec?-it?container_nginx?/bin/bash??進入容器  如果容器還未啟動?執行docker?start?container_nginx

進入容器后啟動Nginx

whereis?nginx?找Nginx的啟動目錄  [root@iz2zehzeir87zi8q99krk1z?~]#?docker?start?container_nginx container_nginx [root@iz2zehzeir87zi8q99krk1z?~]#?docker?exec?-it?container_nginx?/bin/bash root@84683e425116:/#?whereis??nginx nginx:?/usr/sbin/nginx?/usr/lib/nginx?/etc/nginx?/usr/share/nginx root@84683e425116:/#??/usr/sbin/nginx

? ?此時在瀏覽器訪問?http://51.110.218.9:8080/?就可以直接訪問容器內的Nginx?

Linux安裝docker及docker的基本操作總結

如果訪問不成功,可能是主機端口的防火墻開著,執行下邊的命令關閉

/?sbin?/?iptables?-I?INPUT?-p?tcp?--dport?8080?-j?ACCEPT

由于我用的阿里云服務器,所以需要在阿里云把8080端口開放

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Linux安裝docker及docker的基本操作總結

刪除容器?

容器刪除之前先將容器停止??  docker?stop?container_nginx?或者是容器的id  docker?rm?-f?container_nginx??容器刪除

docker start?與?docker?run?的區別

docker?start?name?啟動一個已經創建的容器  docker?run?創建并啟動一個容器

docker run 命令其實是 docker create 和 docker start 的命令組合,先執行docker create 創建一個容器?再接著docker start啟動

主機和容器文件相互復制??

從主機復制到容器?sudo?docker?cp?host_path?containerID:container_path  從容器復制到主機?sudo?docker?cp?containerID:container_path?host_path

請注意,以上這兩個命令都是在主機中執行的,不能再容器中執行

docker cp container_nginx:/usr/local/xin.txt ?/usr/local/software/? ?容器向主機復制文件
docker cp /usr/local/xinzhifu.txt ?container_nginx:/usr/local/??主機向容器復制文件

這樣一個基礎的docker容器就創建完了?。。。。。。。。。。。。

反過來大家再看一看docker的容器與鏡像的區別??https://www.cnblogs.com/linjiaxin/p/7381421.html

那么其實鏡像與容器的本質區別并不大,那么鏡像可以生成容器 ,容器是否可以做成鏡像呢?

docket?commit?container_nginx??image_nginx:v1 ????????????? ??????????????容器名????????????自己起一個鏡像的名字:版本號

?用當前的容器生成了redis鏡像

Linux安裝docker及docker的基本操作總結

例如:A、B兩臺機器都想安裝redis,A機器上創建容器并在容器中做好redis的一切配置,讓后將這個容器docker commit?成鏡像image_redis,B機器也想要安裝redis,直接用鏡像image_redis創建容器就行了,docker就是做這樣一勞永逸的事情。

而且傳統方式得在每臺機器上安裝配置redis非常麻煩

四.鏡像的導入與導出

鏡像壓縮打包 (主機上進行操作),有兩種方式?docker?save?與?docker load?和 docker?export?與?docker import

docker?save?nginx?|?gzip?>?nginx_xin_image.tar.gz??將現有的鏡像壓縮打包  docker?load?-i?nginx_xin_image.tar.gz??壓縮的鏡像解壓  docker?images?進行查看

docker?save?是直接將鏡像進行打包? ?docker?save 或?

docker?export?container_nginx>?nginx_image.tar??  cat?nginx_image.tar?|?sudo?docker?import??-?nginx_image:import

docker?export?是直接將容器進行打包? ?docker?save 或?

需要注意兩種方法配套的,切不可混用。雖然導入導出時沒問題,但是在創建容器時候會報錯

如果使用import導入save產生的文件,雖然導入不提示錯誤,但是啟動容器時會提示失敗,

會出現類似”docker: Error response from daemon: Container command not found or does not exist”的錯誤。

類似,使用load載入export產生的文件,也會出現問題。

相關推薦:《Linux視頻教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享