在linux中安裝Docker
在linux中安裝Docker
Docker官方建議在Ubuntu中安裝,因為Docker是基於Ubuntu釋出的,而且一般Docker出現的問題Ubuntu是最先更新或者打補丁的。在很多版本的CentOS中是不支援更新最新的一些補丁包的。
注意:建議安裝在CentOS7.x以上的版本,在CentOS6.x的版本中,安裝前需要安裝其他很多的環境而且Docker很多補丁不支援更新。
我是第一次安裝docker,所以就總結一下。
安裝Docker
step1: yum 包更新到最新
這一步一直y就行啦
sudo yum update
step2: 安裝需要的軟體包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
step3:設定yum源為阿里雲
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
step4: 安裝docker
sudo yum install docker-ce
step4: 安裝後檢視docker版本
docker -v
預設裝在 /var/n/docker
設定ustc的映象
ustc是老牌的linux映象服務提供者了,還在遙遠的ubuntu 5.04版本的時候就在用。ustc的docker映象加速器速度很快。ustc docker mirror的優勢之一就是不需要註冊,是真正的公共服務。
daemon.json 預設是沒有的所以建立
vi /etc/docker/daemon.json
在該檔案中輸入如下內容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
Docker的啟動與停止
systemctl命令是系統服務管理器指令
啟動docker:
systemctl start docker
停止docker:
systemctl stop docker
重啟docker:
systemctl restart docker
檢視docker狀態:
systemctl status docker
開機啟動:
systemctl enable docker
檢視docker概要資訊
docker info
檢視docker幫助文件
docker --help
常用命令
映象相關命令
檢視映象
docker images
REPOSITORY:映象名稱
TAG:映象標籤
IMAGE ID:映象ID
CREATED:映象的建立日期(不是獲取該映象的日期)
SIZE:映象大小
這些映象都是儲存在Docker宿主機的/var/lib/docker目錄下
搜尋映象
docker search 映象名稱
NAME:倉庫名稱
DESCRIPTION:映象描述
STARS:使用者評價,反應一個映象的受歡迎程度
OFFICIAL:是否官方
AUTOMATED:自動構建,表示該映象由Docker Hub自動構建流程建立的
拉取映象
拉取映象就是從中央倉庫中下載映象到本地
docker pull 映象名稱
我要下載centos7映象
docker pull centos:7
刪除映象
按映象ID刪除映象
docker rmi 映象ID
刪除所有映象
docker rmi `docker images -q`
容器相關命令
檢視容器
檢視正在執行的容器
docker ps
檢視所有容器
docker ps –a
檢視最後一次執行的容器
docker ps –l
檢視停止的容器
docker ps -f status=exited
建立與啟動容器
建立容器常用的引數說明:
建立容器命令:docker run
-i:表示執行容器
-t:表示容器啟動後會進入其命令列。加入這兩個引數後,容器建立就能登入進去。即分配一個偽終端。
–name :為建立的容器命名。
-v:表示目錄對映關係(前者是宿主機目錄,後者是對映到宿主機上的目錄),可以使用多個-v做多個目錄或檔案對映。注意:最好做目錄對映,在宿主機上做修改,然後共享到容器上。
-d:在run後面加上-d引數,則會建立一個守護式容器在後臺執行(這樣建立容器後不會自動登入容器,如果只加-i -t兩個引數,建立後就會自動進去容器)。
-p:表示埠對映,前者是宿主機埠,後者是容器內的對映埠。可以使用多個-p做多個埠對映
(1)互動式方式建立容器
docker run -it --name=容器名稱 映象名稱:標籤 /bin/bash
這時我們通過ps命令檢視,發現可以看到啟動的容器,狀態為啟動狀態
退出當前容器
exit
守護式方式建立容器:
docker run -di --name=容器名稱 映象名稱:標籤
登入守護式容器方式:
docker exec -it 容器名稱 (或者容器ID) /bin/bash
停止與啟動容器
停止容器:
docker stop 容器名稱(或者容器ID)
啟動容器:
docker start 容器名稱(或者容器ID)
檔案拷貝
如果我們需要將檔案拷貝到容器內可以使用cp命令
docker cp 需要拷貝的檔案或目錄 容器名稱:容器目錄
也可以將檔案從容器內拷貝出來
docker cp 容器名稱:容器目錄 需要拷貝的檔案或目錄
目錄掛載
我們可以在建立容器的時候,將宿主機的目錄與容器內的目錄進行對映,這樣我們就可以通過修改宿主機某個目錄的檔案從而去影響容器。
建立容器 新增-v引數 後邊為 宿主機目錄:容器目錄,例如:
docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7
如果你共享的是多級的目錄,可能會出現許可權不足的提示。
這是因為CentOS7中的安全模組selinux把許可權禁掉了,我們需要新增引數 --privileged=true 來解決掛載的目錄沒有許可權的問題
檢視容器IP地址
我們可以通過以下命令檢視容器執行的各種資料
docker inspect 容器名稱(容器ID)
也可以直接執行下面的命令直接輸出IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名稱(容器ID)
刪除容器
刪除指定的容器:
docker rm 容器名稱(容器ID)
我的感悟
映象相當於qq.exe,容器相當於啟動qq程式,你啟動刪除出容器,好比你刪除qq程式和qq.exe沒有任何關係。
遷移與備份
容器儲存為映象
我們可以通過以下命令將容器儲存為映象
docker commit 容器名 映象名
#列如
docker commit mynginx mynginx_i
映象恢復與遷移
我們可以通過以下命令將映象儲存為tar 檔案
# 列如:
docker save -o mynginx.tar mynginx_i
首先我們先刪除掉映象 然後執行此命令進行恢復
docker load -i mynginx.tar
-i 輸入的檔案
執行後再次檢視映象,可以看到映象已經恢復
Dockerfile
Dockerfile是由一系列命令和引數構成的指令碼,這些命令應用於基礎映象並最終建立一個新的映象。
1、對於開發人員:可以為開發團隊提供一個完全一致的開發環境;
2、對於測試人員:可以直接拿開發時所構建的映象或者通過Dockerfile檔案構建一個新的映象開始工作了;
3、對於運維人員:在部署時,可以實現應用的無縫移植。
常用命令
命令 | 作用 |
---|---|
FROM image_name:tag | 定義了使用哪個基礎映象啟動構建流程 |
MAINTAINER user_name | 宣告映象的建立者 |
ENV key value | 設定環境變數 (可以寫多條) |
RUN command | 是Dockerfile的核心部分(可以寫多條) |
ADD source_dir/file dest_dir/file | 將宿主機的檔案複製到容器內,如果是一個壓縮檔案,將會在複製後自動解壓 |
COPY source_dir/file dest_dir/file | 和ADD相似,但是如果有壓縮檔案並不能解壓 |
WORKDIR path_dir | 設定工作目錄 |
使用指令碼建立映象
步驟:
建立目錄
mkdir –p /usr/local/dockerjdk8
下載jdk-8u171-linux-x64.tar.gz並上傳到伺服器(虛擬機器)中的/usr/local/dockerjdk8目錄
建立檔案Dockerfile vi Dockerfile
#依賴映象名稱和ID
FROM centos:7
#指定映象建立者資訊
MAINTAINER ITCAST
#切換工作目錄
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相對路徑jar,把java新增到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java環境變數
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
執行命令構建映象
docker build -t='jdk1.8' .
注意後邊的空格和點,不要省略
檢視映象是否建立完成
docker images
Docker私有倉庫
私有倉庫搭建與配置
拉取私有倉庫映象(此步省略)
docker pull registry
啟動私有倉庫容器
docker run -di --name=registry -p 5000:5000 registry
開啟瀏覽器 輸入地址http://192.168.184.141:5000/v2/_catalog看到{"repositories":[]}
表示私有倉庫搭建成功並且內容為空
修改daemon.json
vi /etc/docker/daemon.json
新增以下內容,儲存退出。
{"insecure-registries":["192.168.184.141:5000"]}
此步用於讓 docker信任私有倉庫地址
重啟docker 服務
systemctl restart docker
映象上傳至私有倉庫
標記此映象為私有倉庫的映象
docker tag jdk1.8 192.168.1.179:5000/jdk1.8
再次啟動私服容器
docker start registry
上傳標記的映象
docker push 192.168.1.179:5000/jdk1.8
相關文章
- 【docker巢狀】在docker中的linux中再安裝dockerDocker巢狀Linux
- 在Oracle Linux 7.1上安裝DockerOracleLinuxDocker
- Linux 中 Docker 的部署安裝LinuxDocker
- 在elementary os中安裝dockerDocker
- 在 Rocky Linux 上安裝最新的 DockerLinuxDocker
- Docker for Linux 安裝DockerLinux
- Linux安裝DockerLinuxDocker
- 教程: Rocky linux 9.4 中安裝DockerLinuxDocker
- 在Ubuntu中安裝Docker和docker的使用UbuntuDocker
- 在python docker中安裝ESL庫PythonDocker
- 在Linux中安裝軟體Linux
- Docker for windows : 安裝linuxDockerWindowsLinux
- Linux 安裝 Docker CELinuxDocker
- linux下安裝dockerLinuxDocker
- Linux中如何安裝RabbitMQ?在linux系統中安裝Rabbitmq的方法LinuxMQ
- 【Docker】Linux安裝Docker(極簡版)DockerLinux
- Linux 下的 Docker 安裝與使用 Docker-compose 安裝LinuxDocker
- Linux 下 docker 安裝 MySQLLinuxDockerMySql
- docker的安裝(linux、centos)DockerLinuxCentOS
- 在Linux中,如何在Linux中安裝和配置KVM?Linux
- 在虛擬機器CentOS中安裝docker虛擬機CentOSDocker
- 在CentOS上安裝dockerCentOSDocker
- 在docker上安裝AWVSDocker
- Linux CentOS 安裝 docker 和 docker-composeLinuxCentOSDocker
- linux中安裝JDK linux中安裝Tomcat linux中安裝Mysql 及故障解析 linux系統安裝redisLinuxJDKTomcatMySqlRedis
- Linux AWVS-14 Docker 安裝LinuxDocker
- linux下安裝docker步驟LinuxDocker
- Linux下安裝 Docker例項LinuxDocker
- linux centos8安裝dockerLinuxCentOSDocker
- linux 命令安裝docker-composeLinuxDocker
- MSSQL SERVER 2016在Windows Docker Container中的安裝SQLServerWindowsDockerAI
- Docker 中安裝RocketMQDockerMQ
- Docker中安裝OracleDockerOracle
- Ubuntu中安裝DockerUbuntuDocker
- docker中安裝mycatDocker
- mysql在linux安裝MySqlLinux
- 在CentOS 8.1上安裝 DockerCentOSDocker
- vnc遠端安裝,在Linux中vnc遠端安裝的教程VNCLinux