首頁  >  文章  >  運維  >  Linux安裝docker及docker的基本操作總結

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

WBOY
WBOY轉載
2021-12-30 17:49:472361瀏覽

這篇文章為大家帶來了關於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已經安裝成功,很簡單 

                               

二.鏡像操作

創建容器要以鏡像為基礎,所以先講下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 0e835a1be9558fa2e28e50a123c04a05 /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端口開放式

                               

刪除容器#boo #docker run 指令其實是docker create 和docker start 的指令組合,先執行docker create 建立一個容器 再接著docker start啟動

##主機和容器檔案互相複製  

容器删除之前先将容器停止  

docker stop container_nginx 或者是容器的id

docker rm -f container_nginx  容器删除

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

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 ae200a4fe3dac143f803c60eaa5089f4或67269b85a601fdf39c099f2230a27732 

docker export container_nginx> nginx_image.tar  

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

docker export 是直接将容器进行打包   docker save 0eb63ddf9ae50481033acff196324cc7或90aa09271f219455372ab2a073b1b3fa 

需要注意两种方法配套的,切不可混用。虽然导入导出时没问题,但是在创建容器时候会报错

如果使用import导入save产生的文件,虽然导入不提示错误,但是启动容器时会提示失败,

会出现类似"docker: Error response from daemon: Container command not found or does not exist"的错误。

类似,使用load载入export产生的文件,也会出现问题。

相关推荐:《Linux视频教程

以上是Linux安裝docker及docker的基本操作總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除