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

2021-12-30 19:00:52
本篇文章給大家帶來了關於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已經安裝成功,很簡單

二.映象操作

建立容器要以映象為基礎,所以先講下docker映象的操作

搜尋映象

docker images ll 檢視下本機的是否已經有了映象

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

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

例如:docker search Ubuntu:1.2.5.4,可以進行搜docker Hub 會列出很多映象

下載映象

docker pull docker.io/nginx 進行下載

下載到原生的映象要比docker Hub上搜尋出來的要大,因為下載過程中自動解壓了,在檢視映象列表就有了剛才下載的映象

列表包含了倉庫名,版本標籤,映象ID,建立時間以及所佔用的空間

刪除映象

刪除沒用的映象docker rmi映象id

三.映象的建立與管理

前邊我們已經下載好了Nginx的映象,接下來我們就建立一個只有Nginx應用的容器docker run -i -t <IMAGE_ID> /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類的系統,那麼容器埠隨便設定,但如果容器內只是單純的應用,那麼容器埠要是應用自身的埠)

這樣我們就建立並啟動了一個容器!

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

如果存取不成功,可能是主機埠的防火牆開著,執行下邊的命令關閉

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

由於我用的阿里雲伺服器,所以需要在阿里雲把8080埠開放

刪除容器

容器刪除之前先將容器停止  

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映象

例如: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 <映象名>或<映象id>

docker export container_nginx> nginx_image.tar  

cat nginx_image.tar | sudo docker import  - nginx_image:import

docker export 是直接將容器進行打包 docker save <容器名>或<容器id>

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

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

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

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

相關推薦:《Linux視訊教學

以上就是Linux安裝docker及docker的基本操作總結的詳細內容,更多請關注TW511.COM其它相關文章!