這篇文章主要講解了“Linux安裝使用docker的方法是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Linux安裝使用docker的方法是什么”吧!
10年積累的成都做網(wǎng)站、網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有茫崖免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Docker要求運行在Centos 7上,要求系統(tǒng)為64位,系統(tǒng)內(nèi)核版本3.10以上
1.uname -an 查看當(dāng)前系統(tǒng)版本
2.yum -y install docker 下載安裝docker
3.service docker start 啟動docker服務(wù)
4.docker version 檢查docker是否安裝成功
當(dāng)看到下圖的信息,就是表示本機docker已經(jīng)安裝成功,很簡單
創(chuàng)建容器要以鏡像為基礎(chǔ),所以先講下docker鏡像的操作
搜索鏡像
docker images ll 查看下本機的是否已經(jīng)有了鏡像
目前機器里還沒有鏡像,去Docker Hub下載(鏡像還可自定義,這里就不細(xì)說了)
docker search java ,還能指定具體的版本進(jìn)行下載,
例如:docker search Ubuntu:1.2.5.4,可以進(jìn)行搜docker Hub 會列出很多鏡像
下載鏡像
docker pull docker.io/nginx 進(jìn)行下載
下載到本地的鏡像要比docker Hub上搜索出來的要大,因為下載過程中自動解壓了,在查看鏡像列表就有了剛才下載的鏡像
列表包含了倉庫名,版本標(biāo)簽,鏡像ID,創(chuàng)建時間以及所占用的空間
刪除鏡像
刪除沒用的鏡像docker rmi鏡像id
前邊我們已經(jīng)下載好了Nginx的鏡像,接下來我們就創(chuàng)建一個只有Nginx應(yīng)用的容器docker run -i -t
docker run -idt --name container_nginx -p 8080:80 docker.io/nginx
啟動一個使用鏡像docker.io/nginx,名字container_nginx的容器,-p 8080:80表示將容器的80端口映射到主機的8080端口,這樣我們只要訪問主機的8080端口就可以訪問到容器的服務(wù)了。
注意:name前面是兩個-, 端口前面有-p, docker.io/nginx是鏡像名,8080是主機的端口,80是Nginx應(yīng)用的端口
主機上的一個端口只能映射一個容器端口,不可以多個容器端口對應(yīng)一個主機端口(如果容器安裝的centos類的系統(tǒng),那么容器端口隨便設(shè)定,但如果容器內(nèi)只是單純的應(yīng)用,那么容器端口要是應(yīng)用自身的端口)
這樣我們就創(chuàng)建并啟動了一個容器!
exit 退出容器 docker ps 查看運行中的容器 docker ps -a 查看運行中和非運行中的所有容器 docker exec -it container_nginx /bin/bash 進(jìn)入容器 如果容器還未啟動 執(zhí)行docker start container_nginx
進(jìn)入容器后啟動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/ 就可以直接訪問容器內(nèi)的Nginx
如果訪問不成功,可能是主機端口的防火墻開著,執(zhí)行下邊的命令關(guān)閉
/ sbin / iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
由于我用的阿里云服務(wù)器,所以需要在阿里云把8080端口開放
刪除容器
容器刪除之前先將容器停止 docker stop container_nginx 或者是容器的id docker rm -f container_nginx 容器刪除
docker start 與 docker run 的區(qū)別
docker start name 啟動一個已經(jīng)創(chuàng)建的容器 docker run 創(chuàng)建并啟動一個容器
docker run 命令其實是 docker create 和 docker start 的命令組合,先執(zhí)行docker create 創(chuàng)建一個容器 再接著docker start啟動
主機和容器文件相互復(fù)制
從主機復(fù)制到容器 sudo docker cp host_path containerID:container_path 從容器復(fù)制到主機 sudo docker cp containerID:container_path host_path
請注意,以上這兩個命令都是在主機中執(zhí)行的,不能再容器中執(zhí)行
docker cp container_nginx:/usr/local/xin.txt /usr/local/software/ 容器向主機復(fù)制文件
docker cp /usr/local/xinzhifu.txt container_nginx:/usr/local/ 主機向容器復(fù)制文件
這樣一個基礎(chǔ)的docker容器就創(chuàng)建完了 。。。。。。。。。。。。
反過來大家再看一看docker的容器與鏡像的區(qū)別 https://www.cnblogs.com/linjiaxin/p/7381421.html
那么其實鏡像與容器的本質(zhì)區(qū)別并不大,那么鏡像可以生成容器 ,容器是否可以做成鏡像呢?
docket commit container_nginx image_nginx:v1 容器名 自己起一個鏡像的名字:版本號
用當(dāng)前的容器生成了redis鏡像
例如:A、B兩臺機器都想安裝redis,A機器上創(chuàng)建容器并在容器中做好redis的一切配置,讓后將這個容器docker commit 成鏡像image_redis,B機器也想要安裝redis,直接用鏡像image_redis創(chuàng)建容器就行了,docker就是做這樣一勞永逸的事情。
而且傳統(tǒng)方式得在每臺機器上安裝配置redis非常麻煩
鏡像壓縮打包 (主機上進(jìn)行操作),有兩種方式 docker save 與 docker load 和 docker export 與 docker import
docker save nginx | gzip > nginx_xin_image.tar.gz 將現(xiàn)有的鏡像壓縮打包 docker load -i nginx_xin_image.tar.gz 壓縮的鏡像解壓 docker images 進(jìn)行查看
docker save 是直接將鏡像進(jìn)行打包 docker save <鏡像名>或<鏡像id>
docker export container_nginx> nginx_image.tar cat nginx_image.tar | sudo docker import - nginx_image:import
docker export 是直接將容器進(jìn)行打包 docker save <容器名>或<容器id>
需要注意兩種方法配套的,切不可混用。雖然導(dǎo)入導(dǎo)出時沒問題,但是在創(chuàng)建容器時候會報錯
如果使用import導(dǎo)入save產(chǎn)生的文件,雖然導(dǎo)入不提示錯誤,但是啟動容器時會提示失敗,
會出現(xiàn)類似"docker: Error response from daemon: Container command not found or does not exist"的錯誤。
類似,使用load載入export產(chǎn)生的文件,也會出現(xiàn)問題。
感謝各位的閱讀,以上就是“Linux安裝使用docker的方法是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Linux安裝使用docker的方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!