日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker拉取centos镜像并部署web应用

發(fā)布時(shí)間:2024/1/1 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker拉取centos镜像并部署web应用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

此博客參考how2j.com和https://www.fecmall.com/topic/592博客,并進(jìn)行整理

1.首先我們要去docker倉(cāng)庫(kù)中拉取一個(gè)centos系統(tǒng)作為我們鏡像的系統(tǒng),此處拉取的倉(cāng)庫(kù)推薦為centos7.9.2009版本。防止出現(xiàn)在鏡像中執(zhí)行systemctl命令時(shí)出現(xiàn)Failed to get D-Bus connection: Operation not permitted沒有操作權(quán)限的問題

docker pull centos:7.9.2009

2.將拉取下的centos:7.9.2009鏡像啟動(dòng),將其作為一個(gè)容器

docker run -dit --privileged -p 2222:22 -p80:80 -p3307:3306 -p8080:8080 -p30000-30010:30000-30010 --name centos7web 鏡像名稱:版本號(hào) /usr/sbin/init

其中的命令解釋為:

docker run 表示運(yùn)行一個(gè)鏡像

-dit 是 -d -i -t 的縮寫。 -d ,表示 detach,即在后臺(tái)運(yùn)行。 -i 表示提供交互接口,這樣才可以通過 docker 和 跑起來的操作系統(tǒng)交互。 -t 表示提供一個(gè) tty (偽終端),與 -i 配合就可以通過 ssh 工具連接到 這個(gè)容器里面去了

–privileged 啟動(dòng)容器的時(shí)候,把權(quán)限帶進(jìn)去。

-p 2222:22 表示在CentOS 上開放2222端口。 第二個(gè)22 表示在容器里開放22端口。 這樣當(dāng)訪問CentOS 的2222端口的時(shí)候,就會(huì)間接地訪問到容器里了(此處非常重要,通過這種方式可以自己任意定義端口映射到容器中)

-p 3307:3306 表示訪問3307端口時(shí),映射到容器mysql的3306端口,使用navicat等數(shù)據(jù)庫(kù)連接工具訪問端口使用

–name centos7web 為要運(yùn)行的容器起名字,centos7web可以自己定義

3.通過xshell連接docker容器

啟動(dòng)docker,進(jìn)入docker容器,如果是守護(hù)態(tài)容器,可以通過下面的方式進(jìn)入:

先查看當(dāng)前運(yùn)行的容器狀態(tài),獲取當(dāng)前運(yùn)行容器的CONTAINER ID

docker ps -a

進(jìn)入容器

docker exec -it 運(yùn)行容器的CONTAINER ID /bin/bash

使用passwd密碼來修改密碼(如提示沒有這個(gè)命令行使用yum install passwd安裝)

passwdxxx密碼xxx確認(rèn)密碼

安裝Openssh(docker 容器中執(zhí)行)

yum -y install openssh-server yum -y install openssh-clients

修改SSH配置文件以下選項(xiàng),去掉#注釋,將四個(gè)選項(xiàng)啟用:

vi /etc/ssh/sshd_configRSAAuthentication yes #啟用 RSA 認(rèn)證 PubkeyAuthentication yes #啟用公鑰私鑰配對(duì)認(rèn)證方式 AuthorizedKeysFile .ssh/authorized_keys #公鑰文件路徑(和上面生成的文件同) PermitRootLogin yes #root能使用ssh登錄

重啟ssh服務(wù),并設(shè)置開機(jī)啟動(dòng):

yum install initscripts -y service sshd restart

退出容器并保存更改

使用exit命令或者ctrl+C來退出當(dāng)前運(yùn)行的容器:

此時(shí)使用xshell連接docker容器

ip: 為宿主主機(jī)的ip,而不是docker容器的ip 端口號(hào):2222 用戶名: root 密碼: 上面password部分設(shè)置的密碼

4.在docker容器中安裝JDK(注意區(qū)分宿主機(jī)和docker容器)

使用yum方式安裝JDK

yum -y install java-1.8.0-openjdk.x86_64

查看JDK是否安裝成功

java -version

5.在docker容器中安裝Tomcat

yum上沒有tomcat的源,所以使用如下方式下載解壓

防止提示wget無法使用,下載命令器: yum install wget -ycd /tmp wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-7/v7.0.92/bin/apache-tomcat-7.0.92.tar.gz tar xzf apache-tomcat-7.0.92.tar.gz mv apache-tomcat-7.0.92 /usr/local/tomcat7

如果yum解壓方式失敗,此處提供how2j網(wǎng)站的tomcat8的下載地址:

https://how2j.cn/frontdownload?bean.id=2036

通過xftp方式傳輸解壓Tomcat,解壓出的文件放在 usr/local 下

啟動(dòng)服務(wù)

cd /usr/local/tomcat解壓文件/bin/ ./startup.sh

查看8080端口是否開放

yum install net-tools -y netstat -anp|grep 8080

設(shè)置Tomcat服務(wù)器自啟動(dòng)

rc.local腳本在 centos7里被降級(jí)了,不能被執(zhí)行,所以要執(zhí)行如下語句使得其可以被執(zhí)行chmod +x /etc/rc.d/rc.local將/usr/local/tomcat解壓路徑/bin/startup.sh 放在rc.local最后一行vi /etc/rc.d/rc.local vi /etc/rc.d/rc.local

6.在docker容器中安裝Mysql

yum上mysql的資源有問題,所以不能僅僅只用yum安裝。在使用yum之前還需要用其他命令獲取mysql社區(qū)版

cd /tmp wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm

通過yum進(jìn)行安裝Mysql

yum install mysql mysql-server mysql-devel -y

啟動(dòng)mysql服務(wù)器(此處如果使用的centos7版本不是centos7.9.2009版本,則會(huì)一直提示Failed to get D-Bus connection: Operation not permitted沒有操作權(quán)限,網(wǎng)上教程使用特權(quán)模式運(yùn)行,測(cè)試還是不行)

systemctl start mysql.service

驗(yàn)證3306端口是否開啟

netstat -anp|grep 3306

設(shè)置Mysql密碼

mysqladmin -u root password admin提示:Warning: Using a password on the command line interface can be insecure.代表命令執(zhí)行成功,但是密碼是顯示的不安全。

登陸驗(yàn)證

mysql -uroot -padmin show databases;

設(shè)置Mysql自啟動(dòng)

systemctl enable mysqld.service

關(guān)閉Mysql自啟動(dòng)

systemctl disable mysqld.service

7.使用Navicat數(shù)據(jù)庫(kù)連接工具連接docker鏡像中的Mysql

使用宿主機(jī)ip+3307端口進(jìn)行訪問,如果出現(xiàn):

1130 - Host XXX is not allowed to connect to this MySQL server。解決方案:登陸root用戶: mysql -u root -puse mysql;所有ip都有權(quán)限訪問(生產(chǎn)環(huán)境會(huì)有重大安全隱患,測(cè)試可用): update user set host = '%' where user ='root';以192.168.1開頭的ip有權(quán)限訪問: update user set host = '192.168.18.%' where user ='root';執(zhí)行update語句時(shí)出現(xiàn)ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY' 錯(cuò)誤,說明有多個(gè)ROOT用戶紀(jì)錄在USER表中了. 查看一下host是否已經(jīng)有了192.168.18.%這個(gè)值,有了就可以了. mysql> select host,user from user where user='root';使配置立即生效: flush privileges;

8.將項(xiàng)目部署到Tomcat中訪問

將Idea打包的war包部署在webapps中,通過宿主機(jī)ip+8080+war包名稱 方式進(jìn)行訪問

9.將當(dāng)前運(yùn)行容器制作為鏡像

容器的生命周期

暫停:pause恢復(fù):unpause停止:stop開始:start (docker在執(zhí)行start命令時(shí)需要等待一會(huì)才可以連接成功)

將運(yùn)行容器暫停

docker ps -a docker stop 當(dāng)前運(yùn)行容器的contrainerId

使用commit命令將容器制作為鏡像

docker commit 當(dāng)前運(yùn)行容器的contrainerId 生成的鏡像名稱

10.將制作好的鏡像提交到倉(cāng)庫(kù)中

登陸docker倉(cāng)庫(kù)

docker login

使用push命令提交當(dāng)前制作的鏡像到倉(cāng)庫(kù)中

docker imagesdocker tag 制作好的鏡像名 倉(cāng)庫(kù)名/生成的鏡像名:tag (tag默認(rèn)就是latest) docker push 倉(cāng)庫(kù)名/生成的鏡像名:TAG

11.在倉(cāng)庫(kù)查看鏡像,并拉取制作的鏡像

https://hub.docker.com/

docker pull 倉(cāng)庫(kù)名/生成的鏡像名:TAG

總結(jié):整理此博客主要為了記錄流程,也是再一次加深了對(duì)docker鏡像和容器的理解。希望能對(duì)剛?cè)腴Tdocker的朋友們有所幫助,省下來踩坑的時(shí)間咱們開開心心打兩把游戲不香嗎!

總結(jié)

以上是生活随笔為你收集整理的Docker拉取centos镜像并部署web应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。