docker命令
https://www.cnblogs.com/DeepInThought/p/10896790.html
:安裝::
官方建議在Ubuntu中安裝 因?yàn)閐ocker是在ubuntu中發(fā)布的 我用的是centos 建議在centos 7.x版本以上
1:安裝的前提是先下載虛擬機(jī)VMware Workstation Pro?
2:下載好centos 7.x 點(diǎn)擊CentOS7.vmx 關(guān)聯(lián)到VMware Workstation Pro?
(因?yàn)槲易约号肅entOS7已經(jīng)包含下面這些了 所以一下步驟我沒弄)
===============以參考以下三個(gè)鏈接
https://www.cnblogs.com/cs294639693/p/10164258.html
https://blog.csdn.net/ZT0518/article/details/88050663
https://blog.csdn.net/hylaking/article/details/87978819
https://www.cnblogs.com/tylerzhou/p/10969072.html(我參考這個(gè)成功了)
https://www.runoob.com/docker/centos-docker-install.html(第二次安裝)
sudo yum install docker-ce-17.12.0.ce
==========================
1钾恢;yum update
2:卸載舊版本docker
yum -y remove docker docker-common docker-selinux docker-engine
3颊艳;設(shè)置yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#阿里云yum源
4:查看所有倉庫中所有docker版本拍谐,并選擇特定版本安裝
yum install -y docker-ce #由于repo中默認(rèn)只開啟stable倉庫酵熙,故這里安裝的是最新穩(wěn)定版17.12.0yum install -y <FQPN> # 例如:sudo yum install docker-ce-17.12.0.ce
5:?jiǎn)?dòng)docker并加入開機(jī)自動(dòng)啟動(dòng)
systemctl start docker
systemctl enable docker
6:配置阿里云鏡像加速
mkdir -p /etc/docker
vi? /etc/docker/daemon.json
添加以下內(nèi)容
{"registry-mirrors":
["https://5f2jam6c.mirror.aliyuncs.com", "http://hub-mirror.c.163.com"]
}
7:重新加載配置文件
systemctl reload docker
8:重啟docker
systemctl restart docker
如果啟動(dòng)報(bào)錯(cuò)可以參考:http://www.pianshen.com/article/6992279516/
3設(shè)置ustc鏡像
4:Docker啟動(dòng)和停止
開啟:systemctl? start? docker
=========
啟動(dòng)docker容器時(shí)報(bào)錯(cuò):
iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 5000 -j DNAT --to-destination 172.18.0.4:5000 ! -i br-ff45d935188b: iptables: No chain/target/match by that name. (exit status 1)
解決方案:重啟docker
systemctl restart docker
————————————————
版權(quán)聲明:本文為CSDN博主「冰山上的來客_胡楊」的原創(chuàng)文章讶隐,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議邪媳,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明刹枉。
原文鏈接:https://blog.csdn.net/weixin_42273374/article/details/82223640
=========
停止:systemctl? stop? docker
重啟::systemctl? restart docker
啟動(dòng)狀態(tài): systemctl? status??docker
開機(jī)自己?jiǎn)?dòng):??systemctl enalbe? docker
=====常用命令;
1鏡像相關(guān):
查看鏡像: ????
搜索鏡像
拉取鏡像聚霜; docker pull? 鏡像名稱? 例如:??docker pull? centos:7
刪除鏡像:docker rmi 鏡像id
刪除所有鏡像:docker rmi? `docker iamges -q`? ?這個(gè)2個(gè)引號(hào)是? Esc鍵 下面的引號(hào)
查看運(yùn)行容器:docker ps
看所有容器:??docker ps -a
查看最后一次 運(yùn)行的容器:???docker ps -l
========創(chuàng)建與啟動(dòng)容器:
=============應(yīng)用部署
docker search 鏡像名稱? eg:docker search mysql??
1:mysql部署
1.1拉取mysq鏡像
docker pull centos/mysql-57-centos7
1.2創(chuàng)建容器
docker run -di --name=tensquare_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7? ??
?docker run –name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.23
docker run -di --name=mysqltest -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql? ?
33306:是宿主機(jī)端口
:3306 容器端口
-p 代表端口映射
-e 代表 添加環(huán)境變量? ?MYSQL_ROOT_PASSWORD 是root用戶登錄密碼
1.2.1: 創(chuàng)建成功之后可以使用sqlyog測(cè)試一下
1.3:進(jìn)去mysql容器? (我運(yùn)行成功 所以我使用了遠(yuǎn)程連接? sqlyog)
如果 連接不上就關(guān)閉防火墻
docker exec -it?tensquare_mysql /bin/bash
1.4:登錄mysql
mysql -u root -p
============tomcat部署
1:l拉取鏡像
docker pull tomcat:7
2:創(chuàng)建容器
? -p :端口映射
-v? 目錄掛載
docker run -di --name=mytomcat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre7
: 后面的路徑是容器內(nèi)的路徑
測(cè)試:??上傳一個(gè)war包(我使用的是FileZilla-3.7.3 這個(gè)工具上傳的)
1:先給webapps 目錄下上傳一個(gè)war包
2:在瀏覽器中輸入:http://192.168.206.131:9000/你war包的訪問路徑
==============nginx部署
1:拉取
docker pull? nginx
2:創(chuàng)建容器
docker run -di --name=mynginx -p 80:80 nginx
3:測(cè)試
瀏覽器 輸入http://192.168.206.131/ 可以看到nginx 歡迎頁面
查看nginx 默認(rèn)配置默認(rèn)的文件
1:進(jìn)入容器?? docker exec -it mynginx /bin/bash
2:將文件夾上傳到遠(yuǎn)程服務(wù)器 (就是你的虛擬機(jī)中) 我上傳到usr目錄下了
3: 將你上傳文件夾? 放入到 nginx的? /usr/share/nginx/
4;在瀏覽器中輸入 http://192.168.206.131/a.html
========redis部署
1拉取
docker pull? redis
2:創(chuàng)建容器
docker run -di? --name=myredis -p 6379:6379 redis
測(cè)試:通過redis 客戶端 連接? ??redis-cli -h? 遠(yuǎn)程地址? el:?redis-cli -h? 192.168.xxx.xxx
===========遷移與備份
1:將容器 保存為對(duì)象
docker? commit? mynginux??mynginux_1
查看 是否成功 docker images:
基于新創(chuàng)建的鏡像在創(chuàng)建一個(gè)容器
docker run -di --name=mynginx2? -p 81:80??mynginux_1
測(cè)試:? 瀏覽器輸入? http://192.168.206.131:81
2:鏡像備份
-o 后面是文件名稱? ?mynginux.tar??
docker save? -o mynginux.tar??mynginux_1
測(cè)試:輸入 dir? 可以 看到 當(dāng)前文件多了一個(gè)? ?mynginux.tar??
3:鏡像恢復(fù)與遷移
先刪除mynginux_1鏡像 然后執(zhí)行命令 進(jìn)項(xiàng)恢復(fù)? 如果mynginux_1的? 容器? mynginx2正在運(yùn)行 需要關(guān)閉
停止容器:? ?docker? stop? mynginx2
刪除容器 :??docker rm??mynginx2
刪除鏡像:??docker rmi??mynginux_1
看看是否刪除成功: docker images
鏡像恢復(fù)
i:輸入的文件
docker load? -i??mynginux.tar?
看看是否 成功:??docker images
===========DockerFile 常用命令
DockerFile 是由一系列命令和參數(shù)構(gòu)成的腳本 這些命令應(yīng)用于基礎(chǔ)鏡像并最終創(chuàng)建一個(gè)新的 鏡像
1:對(duì)于開發(fā)人員可以 提供一個(gè)完全一致的的開發(fā)環(huán)境
2:對(duì)于測(cè)試人員可以直接拿開發(fā)時(shí)所構(gòu)建的鏡像或者通過dockerfile文件構(gòu)建一個(gè)新的鏡像開始工作
3:對(duì)于運(yùn)維人員 部署時(shí)可以實(shí)現(xiàn)應(yīng)用的無縫移植
常用命令:
使用腳本創(chuàng)建鏡像
案例 構(gòu)件jdk8
步驟:
1:創(chuàng)建目錄
mkdir -p /usr/local/dockerjks8
2:上傳jkd? ?
可以使用我之前說的FileZilla-3.7.3 這個(gè)工具? ?也可以使用sftp命令? Alt+p
3:移動(dòng)到剛才創(chuàng)建 的目錄?
mv??jdk-8u171-linux-x64.tar.gz /usr/local/dockerjks8
4進(jìn)入該目錄 構(gòu)件DockerFile? ? 依次輸入命令
vi??Dockerfile
FROM centos:7
MAINTAINER:lww
WORKDIR /usr
RUN? ?mkdir??/usr.local/java
ADD??jdk-8u171-linux-x64.tar.gz /usr.local/java/
ENV??JAVA_HOME?/usr/java/jdk1.8.0_171-amd64
ENV?JRE_HOME?usr/java/jdk1.8.0_171-amd64/jre
ENV??CLASSPATH??$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV??PATH?$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
xie寫完之后保存:? 先按Esc 然后輸入:wq
4:構(gòu)件??
-t:鏡像名稱
. 指定文件夾? 這里的. 代表當(dāng)前目錄
docker build -t='jdk1.8' .
查看是否構(gòu)件成功: docker images? 會(huì)發(fā)現(xiàn)多了一個(gè) jdk1.8的鏡像
===========私有倉庫搭建
企業(yè)內(nèi)部所使用的 倉庫??
?私有倉庫的創(chuàng)建與配置
1:拉取私有倉庫對(duì)象
docker pull registry
2:?jiǎn)?dòng)私有倉庫容器
docker? run? -di --name=myregistry -p 5000:5000 registry
測(cè)試? 瀏覽器輸入:??http://192.168.206.131:5000/v2/_catalog?
或者在命令行中:curl http://192.168.206.131:5000/v2/_catalog?
看到 {"repositories":[]} 表示私有倉庫創(chuàng)建成功 并且內(nèi)容為空
我的在瀏覽器沒出現(xiàn)?{"repositories":[]}? ?但是讓我下載daemon.json? ?下載完成 打開展示的也是{"repositories":[]}?
3: 修改deamon.josn
vi /etc/docker/daemon.json
添加以下內(nèi)容
{“insecure-registries”:["192.168.206.131:5000"]}
{
? ? "graph": "/mnt/docker-data",
? ? "storage-driver": "overlay",
? ? “insecure-registries”:"192.168.227.128:5000"
}
此操作用于讓docker信任私有倉庫地址
為了讓配置生效 重啟docker
=====私有倉庫上傳鏡像
:1:打標(biāo)簽? 比如給jdk1.8 打標(biāo)簽? ? ?192.168.206.131:5000 私服地址
docker? tag jdk1.8 192.168.206.131:5000/jdk1.8
查看 docker images? 會(huì)發(fā)現(xiàn)多了一個(gè)??192.168.206.131:5000/jdk1.8
2:上傳
docker push??192.168.206.131:5000/jdk1.8
============錯(cuò)誤
[root@mastersysconfig]# docker push 192.168.1.100:5000/registry:2.4.1Thepush refers to a repository [192.168.1.100:5000/registry]Gethttps://192.168.1.100:5000/v1/_ping:https:server gaveHTTPresponse toHTTPSclient
解決:
在”/etc/docker/“目錄下狡恬,創(chuàng)建”daemon.json“文件。在文件中寫入:
{ "insecure-registries":["你自己虛擬機(jī)的ip:5000"]}
重啟docker俯萎。 systemctl restart docker
==============
3傲宜;測(cè)試?
?http://192.168.206.131:5000/v2/_catalog?
會(huì)出現(xiàn)??{"repositories":["jdk1.8"]}
我們現(xiàn)在可以將本地的 jdk和打標(biāo)簽的jdk 刪除 然后從私有庫中下載
docker rmi? jdk1.8
docker rmi??192.168.227.128:5000/jdk1.8
查看是否刪除:docker images
docker pull 192.168.227.128/jdk1.8