目錄
1.Docker安裝與啟動
1.1 安裝Docker
?1.2 設置ustc的鏡像
?1.3 Docker的啟動與停止
2.常用命令
2.1 鏡像相關命令
2.1.1 查看鏡像
2.1.2 搜索鏡像
?2.1.3?拉取鏡像
2.1.4?刪除鏡像
2.2 容器相關命令
2.2.1 查看容器
2.2.2?創(chuàng)建與啟動容器
2.2.3 停止與啟動容器
2.2.4 文件拷貝
2.2.5 目錄掛載
2.2.6 查看容器IP地址
2.2.7 刪除容器
3.應用部署
3.1 MySQL部署
3.2 Tomcat部署
?3.3 Nginx部署
3.4 Redis部署?
4.遷移與備份
4.1?容器保存為鏡像
4.2?鏡像備份
4.3 鏡像恢復與遷移?
5.Dockerfile
5.1?什么是Dockerfile
5.2?常用命令
5.3?使用腳本創(chuàng)建鏡像
6.Docker私有倉庫
6.1?私有倉庫搭建與配置
6.2 鏡像上傳至私有倉庫
1.Docker安裝與啟動
1.1 安裝Docker
Docker官方建議在Ubuntu中安裝,因為Docker是基于Ubuntu發(fā)布的,而且一般Docker出現的問題Ubuntu是最先更新或者打補丁的。在很多版本的CentOS中是不支持更新最新的一些補丁包的。
由于我們學習的環(huán)境都使用的是CentOS,因此這里我們將Docker安裝到CentOS上。注意:這里建議安裝在CentOS7.x以上的版本,在CentOS6.x的版本中,安裝前需要安裝其他很多的環(huán)境而且Docker很多補丁不支持更新。
(1)yum 包更新到最新
sudo yum update
(2)安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
?(3)設置yum源為阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(4)安裝docker
// ce社區(qū)版本 ee企業(yè)版本
sudo yum install docker-ce
?(5)安裝后查看docker版本
docker -v
?1.2 設置ustc的鏡像
ustc是老牌的linux鏡像服務提供者了,還在遙遠的ubuntu5.04版本的時候就在用。ustc的docker鏡像加速器速度很快。ustc docker mirror的優(yōu)勢之一就是不需要注冊,是真正的公共服務。
https://lug.ustc.edu.cn/wiki/mirrors/help/docker、
編輯該文件:
vi /etc/docker/daemon.json?
在該文件中輸入如下內容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
?1.3 Docker的啟動與停止
systemctl命令是系統(tǒng)服務管理器指令
啟動docker:
systemctl start docker
停止docker:
systemctl stop docker
重啟docker:
systemctl restart docker
開機啟動:
systemctl enable docker
?查看docker概要信息
docker info
查看docker幫助文檔
docker help
2.常用命令
2.1 鏡像相關命令
2.1.1 查看鏡像
docker images
- REPOSITORY:鏡像名稱
- TAG:鏡像標簽
- IMAGE ID:鏡像ID
- CREATED:鏡像的創(chuàng)建日期(不是獲取該鏡像的日期)
- SIZE:鏡像大小
這些鏡像都是存儲在Docker宿主機的/var/lib/docker目錄下
2.1.2 搜索鏡像
如果你需要從網絡中查找需要的鏡像,可以通過以下命令搜索
docker search 鏡像名字
- NAME:倉庫名稱
- DESCRIPTION:鏡像描述
- STARS:用戶評價,反應一個鏡像的受歡迎程度
- OFFICIAL:是否官方
- AUTOMATED:自動構建,表示該鏡像由Docker Hub自動構建流程創(chuàng)建的
?2.1.3?拉取鏡像
拉取鏡像就是從中央倉庫中下載鏡像到本地
docker pull 鏡像名稱
例如,我要下載centos7鏡像
docker pull centos:7
2.1.4?刪除鏡像
按鏡像ID刪除鏡像。鏡像在創(chuàng)建的容器中沒有運行才可以刪除鏡像
docker rmi 鏡像ID
刪除所有鏡像
// 不是引號
docker rmi `docker images -q`
2.2 容器相關命令
2.2.1 查看容器
查看正在運行的容器
docker ps
查看所有容器
docker ps -a
查看最后一次運行的容器
docker ps –l
查看停止的容器
docker ps -f status=exited
2.2.2?創(chuàng)建與啟動容器
創(chuàng)建容器常用的參數說明:
創(chuàng)建容器命令:docker run
- -i:表示運行容器
- -t:表示容器啟動后會進入其命令行。加入這兩個參數后,容器創(chuàng)建就能登錄進去。即分配一個偽終端。
- --name :為創(chuàng)建的容器命名。
- -v:表示目錄映射關系(前者是宿主機目錄,后者是映射到宿主機上的目錄),可以使用多個-v做多個目錄或文件映射。注意:最好做目錄映射,在宿主機上做修改,然后共享到容器上。
- -d:在run后面加上-d參數,則會創(chuàng)建一個守護式容器在后臺運行(這樣創(chuàng)建容器后不會自動登錄容器,如果只加-i -t兩個參數,創(chuàng)建后就會自動進去容器)。
- -p:表示端口映射,前者是宿主機端口,后者是容器內的映射端口??梢允褂枚鄠€-p做多個端口映射
?(1)交互式方式創(chuàng)建容器
docker run -it --name=容器名稱 鏡像名稱:標簽 /bin/bash
這時我們通過ps命令查看,發(fā)現可以看到啟動的容器,狀態(tài)為啟動狀態(tài) ?
退出當前容器
exit
(2)守護式方式創(chuàng)建容器:
docker run -di --name=容器名稱 鏡像名稱:標簽
登錄守護式容器方式:
docker exec -it 容器名稱 (或者容器ID) /bin/bash
2.2.3 停止與啟動容器
停止容器:
docker stop 容器名稱(或者容器ID)
?啟動容器:
docker start 容器名稱(或者容器ID)
2.2.4 文件拷貝
如果我們需要將文件拷貝到容器內可以使用cp命令
docker cp 需要拷貝的文件或目錄 容器名稱:容器目錄
也可以將文件從容器內拷貝出來
docker cp 容器名稱:容器目錄 需要拷貝的文件或目錄
2.2.5 目錄掛載
我們可以在創(chuàng)建容器的時候,將宿主機的目錄與容器內的目錄進行映射,這樣我們就可以通過修改宿主機某個目錄的文件從而去影響容器。
創(chuàng)建容器 添加-v參數 后邊為 ? 宿主機目錄:容器目錄,例如:
docker run -di -v /usr/local/benjamin:/usr/local/benjamin--name=redis3 redis:latest
如果你共享的是多級的目錄,可能會出現權限不足的提示。這是因為CentOS7中的安全模塊selinux把權限禁掉了,我們需要添加參數 ?--privileged=true ?來解決掛載的目錄沒有權限的問題
2.2.6 查看容器IP地址
我們可以通過以下命令查看容器運行的各種數據
docker inspect 容器名稱(容器ID)?
也可以直接執(zhí)行下面的命令直接輸出IP地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名稱(容器ID)
2.2.7 刪除容器
刪除指定的容器:容器必須停止,沒有運行
docker rm 容器名稱(容器ID)
3.應用部署
3.1 MySQL部署
(1)拉取mysql鏡像
docker pull centos/mysql-57-centos7
(2)創(chuàng)建容器
docker -id --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7
-p 代表端口映射,格式為??宿主機映射端口:容器運行端口
-e 代表添加環(huán)境變量??MYSQL_ROOT_PASSWORD ?是root用戶的登陸密碼
(3)遠程登錄mysql
連接宿主機的IP ?,指定端口為3306??
3.2 Tomcat部署
(1)拉取鏡像
docker pull tomcat
(2)創(chuàng)建容器
docker run -id --name=tomcat -p 8080:8080 -v /usr/local/tomcat/webapps:/usr/local/tomcat/webapps tomcat
如果tomcat部署png圖片,在webapps包下面新建一個文件夾,將靜態(tài)圖片放進去即可測試。
?3.3 Nginx部署
(1)拉取鏡像
docker pull nginx
(2)創(chuàng)建Nginx容器
docker run -id --name=nginx -p 80:80 nginx
tip:nginx創(chuàng)建容器后nginx路徑在/etc/nginx,進入容器就可以看到
進入nginx容器
docker exec -it nginx /bin/bash
?注意配置文件里面的配置以及映射資源的路徑,對nginx資源映射不理解的可以看我發(fā)的相關nginx blog。如果剛創(chuàng)建的nginx容器沒有修改就需要把資源放到圖片中的配置文件指定的路徑下面。
nginx資源映射路徑配置文章瀏覽閱讀6.6k次,點贊2次,收藏12次。一、Nginx代理后端服務nginx 服務器及端口 127.0.0.1:80后端服務:127.0.0.1:8080測試url:http://127.0.0.1:80/day06api/api/abc1.配置nginx配置如下:location /day06api/ { proxy_pass http://127.0.0.1:8080/;}實際訪問的端口服務:http://127.0.0.1:8080/api/ab2.配置nginx配置如下:location_nginx location 斜杠https://blog.csdn.net/m0_48983233/article/details/120932973
3.4 Redis部署?
(1)拉取鏡像
docker pull redis
?(2)創(chuàng)建容器
docker run -id --name=redis -p 6379:6379 redis
?部署好測試一下連接:
?
4.遷移與備份
4.1?容器保存為鏡像
我們可以通過以下命令將容器保存為鏡像
// docker commit 容器名 鏡像名字
docker commit nginx nginx_bak
4.2?鏡像備份
?我們可以通過以下命令將鏡像保存為tar 文件
// docker save -o 備份名字 鏡像名字
docker save -o nginx_bak.tar nginx_bak
4.3 鏡像恢復與遷移?
docker load -i nginx_bak.tar
刪除剛剛備份的鏡像,通過鏡像tar包重新恢復鏡像?
5.Dockerfile
5.1?什么是Dockerfile
Dockerfile是由一系列命令和參數構成的腳本,這些命令應用于基礎鏡像并最終創(chuàng)建一個新的鏡像。
1、對于開發(fā)人員:可以為開發(fā)團隊提供一個完全一致的開發(fā)環(huán)境;?
2、對于測試人員:可以直接拿開發(fā)時所構建的鏡像或者通過Dockerfile文件構建一個新的鏡像開始工作了;?
3、對于運維人員:在部署時,可以實現應用的無縫移植。
5.2?常用命令
命令 | 作用 |
---|---|
FROM image_name:tag | 定義了使用哪個基礎鏡像啟動構建流程 |
MAINTAINER user_name | 聲明鏡像的創(chuàng)建者 |
ENV key value | 設置環(huán)境變量 (可以寫多條) |
RUN command | 是Dockerfile的核心部分(可以寫多條) |
ADD source_dir/file dest_dir/file | 將宿主機的文件復制到容器內,如果是一個壓縮文件,將會在復制后自動解壓 |
COPY source_dir/file dest_dir/file | 和ADD相似,但是如果有壓縮文件并不能解壓 |
WORKDIR path_dir | 設置工作目錄 |
5.3?使用腳本創(chuàng)建鏡像
步驟:
(1)創(chuàng)建目錄
mkdir –p /usr/local/tem
(2)下載jdk-8u261-linux-i586.tar.gz并上傳到服務器(虛擬機)中的/usr/local/tem
(3)創(chuàng)建文件Dockerfile ?vi Dockerfile(名字只能是這個Dockerfile)
#依賴鏡像名稱和ID
FROM centos:latest
#指定鏡像創(chuàng)建者信息
MAINTAINER Benjamin
#切換工作目錄
WORKDIR /usr/local/tem
RUN mkdir /usr/local/tem/java
#ADD 是相對路徑jar,把java添加容器中
ADD jdk-8u261-linux-i586.tar.gz /usr/local/tem/java
#配置java環(huán)境變量
ENV JAVA_HOME /usr/local/tem/java/
ENV JAVA $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
?(4)執(zhí)行命令構建鏡像
docker build -t='jdk1.8' .
(5)查看鏡像是否建立完成
docker images
6.Docker私有倉庫
6.1?私有倉庫搭建與配置
(1)拉取私有倉庫鏡像
docker pull registry
(2)創(chuàng)建私有倉庫容器
docker run -di --name=registry -p 5000:5000 registry
(3) 訪問http://192.168.64.129:5000/v2/_catalog為空,表示搭建私有倉庫成功私有倉庫5000
(4)修改daemon.json?
vi /etc/docker/daemon.json
添加以下內容,保存退出。
這個ip是我上傳容器的服務器,拉取鏡像也需要配置信任docker 私有倉庫地址
{"insecure-registries":["192.168.64.129:5000"]}
此步用于讓 docker信任私有倉庫地址
(5)重啟docker 服務
systemctl restart docker
6.2 鏡像上傳至私有倉庫
(1)標記此鏡像為私有倉庫的鏡像
docker tag nginx 192.168.64.129:5000/nginx
(2)啟動私服容器
docker start registry
(3)上傳標記的鏡像
docker push 192.168.64.129:5000/nginx
再次查詢私服:文章來源:http://www.zghlxwxcb.cn/news/detail-814704.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-814704.html
到了這里,關于Docker安裝啟動、常用命令、應用部署、遷移備份、Dockerfile、Docker私有倉庫的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!