站長資訊網
        最全最豐富的資訊網站

        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 <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類的系統,那么容器端口隨便設定,但如果容器內只是單純的應用,那么容器端口要是應用自身的端口)

        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 <鏡像名>或<鏡像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產生的文件,也會出現問題。

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 亚洲精品乱码久久久久久中文字幕 | 香蕉国产精品麻豆亚洲欧美日韩精品自拍欧美v国 | 91精品成人免费国产| 欧美精品91欧美日韩操| 自怕偷自怕亚洲精品| 人人妻人人澡人人爽人人精品97| 久久久久国产精品麻豆AR影院| 亚洲精品无码不卡| 国产精品99精品久久免费| 亚洲精品高清在线| 精品亚洲一区二区三区在线观看| 99热成人精品热久久669| 无码精品人妻一区二区三区中| 久久久精品国产Sm最大网站| 99久久精品免费看国产一区二区三区 | 97久人人做人人妻人人玩精品| 99久久精品费精品国产一区二区| 日韩精品一区二区三区中文 | 精品国产一区二区三区在线观看| 91大神精品全国在线观看| 欧美国产日本精品一区二区三区| 成人国产精品免费视频| 国产中老年妇女精品| 久久棈精品久久久久久噜噜| 无码人妻精品一区二区三区东京热 | 99热精品久久只有精品| 奇米精品一区二区三区在线观看| 91精品国产高清久久久久久io| 精品无码一区二区三区爱欲| 欧美精品v国产精品v日韩精品| 日韩人妻无码精品久久免费一| 无码精品视频一区二区三区| 少妇人妻偷人精品无码视频 | 精品国产日韩亚洲一区| 国产色精品vr一区区三区| 国产在线精品国自产拍影院| 久久99精品国产麻豆婷婷| 人妻VA精品VA欧美VA| 亚洲福利精品电影在线观看| 日本精品少妇一区二区三区| 青春草无码精品视频在线观|