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其它相關文章!