主機環境:centos8
一、docker 安裝
step1:添加Docker存儲庫文件:(兩種方式)
(1) sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
如果使用阿里雲鏡像源:可以用sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(2) sudo curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo,然后sudo yum makecache更新RPM索引緩存
step2:安裝docker及客戶端
sudo yum install docker-ce docker-ce-cli
如提示:package docker-ce-3:19.03.4-3.el7.x86_64 requires containerd.io >= 1.2.2-3 那就先裝新版的 containerd.io
sudo dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
step3:驗證docker安裝及后續設置
#docker --version
#systemctl enable docker
#systemctl start docker
#usermod -aG docker 你登錄centos用戶名 //(添加用戶到docker組,避免docker操作時驗證權限)
二、配置阿里雲鏡像加速
注冊阿里雲賬號,登錄阿里雲控制台——>產品與服務——>彈性計算——>容器鏡像服務-》鏡像加速器,取得個人加速器地址:
[root@server1 ~]# cd /etc/docker/
[root@server1 docker]# ls
key.json
[root@server1 docker]# vi daemon.json
{
"registry-mirrors": ["個人加速器地址"]
}
[root@server1 docker]# systemctl daemon-reload
[root@server1 docker]# systemctl restart docker
三、創建容器
(1) 關閉防火牆
systemctl stop firewalld
(2) Docker-Mysql
下載mysql
docker pull mysql
創建container
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
進入container,設置mysql
docker exec -it mysql-test bash
mysql -u root -p
CREATE USER 'ljh'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'ljh'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
flush privileges;
本機安裝navicat for mysql,連接mysql。
(3) Docker-tomcat
下載tomcat
docker pull tomcat
運行我們的tomcat鏡像
docker run -d -p 8888:8080 -v /root/tomcat/:/usr/local/tomcat/webapps/ tomcat
參數說明:
-d 后台運行
-p 指定訪問主機的8888端口映射到8080端口。
-v 指定我們容器的/usr/local/tomcat/webapps/目錄為/root/tomcat/主機目錄,后續我們要對tomcat進行操作直接在主機這個目錄操作即可。
在/root/tomcat/新建test目錄,並在test目錄下寫入hello.html文件
<html>
<head>Tomcat Run In Docker</head>
<body>
hello docker.
</body>
</html>
訪問這個頁面:
curl -i http://127.0.0.1:8888/test/hello.html
注意
我們不能直接在tomcat目錄下直接創建hello.html文件,curl -i http://127.0.0.1:8888/hello.html 訪問的結果404.
(4) 啟動防火牆
systemctl start firewalld
添加端口規則:
firewall-cmd --add-port 8888/tcp
firewall-cmd --add-port 3306/tcp
firewall-cmd --runtime-to-permanent
(5)測試遠程訪問,使用navicat連接mysql,瀏覽器訪問http://你的主機IP:8888/test/hello.html
(6)不能遠程訪問情況下處理
保證先關掉防火牆下,systemctl restart docker,然后啟動容器,再打開防火牆就可以。
感謝https://www.cnblogs.com/Hvai/博主給予的幫助
參考文章: