centos8下docker安装及容器远程访问
主机环境: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/博主给予的帮助
参考文章: