常用docker命令---初级

1、安装

官方教程:Install Docker Engine on CentOS | Docker Documentation

# 卸载旧的版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
                  
# 安装基本的安装包
 sudo yum install -y yum-utils


#配置yum # 阿里云镜像
sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
    
#更像软件包索引
yum makecache fast
#安装docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 代表启动成功
systemctl start docker 
# 查看docker版本
docker version
#运行hello
docker run hello-world
#配置阿里加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://fxo76wtu.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker


#卸载Docker
# 卸载依赖
yum remove docker-ce docker-ce-cli containerd.io

# 删除资源
rm -rf /var/lib/docker # docker 的默认工作路径

2、常用命令

docker images

查看所有本地主机上的镜像

docker pull+镜像名

下拉镜像,例如:

docker pull tomcat #下载tomcat
docker pull tomcat:9   #指定版本

docker rmi+镜像id

删除镜像

docker run +参数+镜像名

创建一个容器并运行

docker run -d --name tomcat8080 -p 8080:8080 tomcat
docker run -d --name tomcat8081 -p 8081:8080 tomcat
# 参数说明
--name 	容器命名
-d		后台方式运行
-it		使用交互方式运行,进入容器查看内容
-p		主机端口(外部端口):容器端口		-p 8080:8080
-v		# 卷挂载

docker rm +容器id/容器名

删除一个容器

docker ps -a

查看所有容器

docker start+容器id/容器名

启动一个容器

docker stop+容器id/容器名

停止一个运行的容器

docker restart +容器id/容器名

重启容器

docker kill +容器id/容器名

强制停止当前的容器

$(docker ps -a -q)

(可以理解为所有容器列表)

docker stop $(docker ps -a -q) #停止所有容器

docker exec -it +容器ID/容器名 bash

进入容器内部

exit

直接退出容器并关闭

Ctrl + P + Q

容器不关闭退出

docker cp +容器ID/容器名:容器内路径 目的地主机路径

docker cp 7af535f807e0:/home/Test.java /home

从容器中拷贝文件到主机(可以反过来)

docker logs --tail 10 +容器ID/容器名

查看10条日志

(数据卷)docker run -v 主机路径:容器内路径

docker run -d -p 3344:3306 -v /home/mysql:/etc/mysql --name mysql1 mysql

docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

3、centos防火墙

ip地址

ip addr
# or
ip a

常用

#开启8080端口访问规则
firewall-cmd --zone=public --add-port=8080/tcp --permanent 
#更新防火墙规则,立即生效
firewall-cmd --reload             
#查看所有打开的端口
firewall-cmd --list-ports
#永久增加65001-65010
firewall-cmd  --zone=public --add-port=65001-65010/tcp --permanent     


#启动防火墙 
systemctl start firewalld.service 
#停止防火墙
systemctl stop firewalld.service
# 重启防火墙
systemctl restart firewalld.service
#查看防火墙状态
systemctl status firewalld
#设置防火墙随系统启动
systemctl enable firewalld
#禁止防火墙随系统启动
systemctl disable firewalld                  
  firwall-cmd:是Linux提供的操作firewall的一个工具(服务)命令
  --zone #作用域
  --add-port=8080/tcp #添加端口,格式为:端口/通讯协议 ;add表示添加,remove则对应移除
  --permanent #永久生效,没有此参数重启后失效
systemctl start firewalld.service            #启动防火墙 
systemctl stop firewalld.service             #停止防火墙 
systemctl status firewalld                   #查看防火墙状态
systemctl enable firewalld                   #设置防火墙随系统启动
systemctl disable firewalld                  #禁止防火墙随系统启动
firewall-cmd --state                         #查看防火墙状态 
firewall-cmd --reload                        #更新防火墙规则  
firewall-cmd --list-ports                    #查看所有打开的端口 
firewall-cmd --list-services                 #查看所有允许的服务 
firewall-cmd --get-services                  #获取所有支持的服务 
firewall-cmd --list-all-zones                    #查看所有区域信息 
firewall-cmd --get-active-zones                  #查看活动区域信息 
firewall-cmd --set-default-zone=public           #设置public为默认区域 
firewall-cmd --get-default-zone                  #查看默认区域信息 
firewall-cmd --zone=public --add-interface=eth0          #将接口eth0加入区域public
firewall-cmd --zone=public --remove-interface=eth0       #从区域public中删除接口eth0 
firewall-cmd --zone=default --change-interface=eth0      #修改接口eth0所属区域为default 
firewall-cmd --get-zone-of-interface=eth0                #查看接口eth0所属区域 
firewall-cmd --query-port=8080/tcp                       # 查询端口是否开放
firewall-cmd --add-port=8080/tcp --permanent             #永久添加8080端口例外(全局)
firewall-cmd --remove-port=8800/tcp --permanent          #永久删除8080端口例外(全局)
firewall-cmd --add-port=65001-65010/tcp --permanent      #永久增加65001-65010例外(全局) 
firewall-cmd  --zone=public --add-port=8080/tcp --permanent            #永久添加8080端口例外(区域public)
firewall-cmd  --zone=public --remove-port=8080/tcp --permanent         #永久删除8080端口例外(区域public)
firewall-cmd  --zone=public --add-port=65001-65010/tcp --permanent     #永久增加65001-65010

4、主要软件安装

tomcat

docker pull tomcat:9.0-jdk8-temurin-jammy

docker pull tomcat:9

Nginx

docker pull nginx
#先普通运行一个nginx容器
docker run --name nginx-test -d nginx
#复制出来里面的conf.d和html文件夹(需要里面的配置文件和默认的index.html)
# 拷贝出conf.d和nginx.conf和html文件夹
docker cp nginx-test:/etc/nginx/conf.d /etc/nginx/conf/conf.d
docker cp nginx-test:/etc/nginx/nginx.conf /etc/nginx/conf/nginx.conf
docker cp nginx-test:/usr/share/nginx/html /etc/nginx/html
# 删除nginx-test容器
docker rm -f nginx-test
#再次用下面的命令运行nginx容器(数据卷会覆盖容器内相应的目录,所以上面一步先复制一份出来)
docker run -d --name nginx-80 -p 80:80 -v /etc/nginx/conf/conf.d:/etc/nginx/conf.d -v /etc/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /etc/nginx/html:/usr/share/nginx/html nginx

集群配置nginx.conf中

upstream nginxCluster{
	server 192.168.150.130:8080;
	server 192.168.150.130:8081;
	server 192.168.150.130:8082;
}

在这里插入图片描述

default.conf配置

location / {
	proxy_pass http://nginxCluster;
}

在这里插入图片描述

mysql

docker pull mysql:5.7.39

创建容器

#创建一个测试
docker run -p 3306:3306 --name mys -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.39
#先要把容器内的/etc/my.cnf复制出来
docker cp mys:/etc/my.cnf /etc/mysql01/
#删除
docker rm -f mys
#mkdir /etc/mysql/mysql3306
docker run -p 3306:3306 --restart=always --name mysql3306 -v /etc/mysql/mysql3306/conf:/etc/mysql/conf.d -v /etc/mysql/mysql3306/logs:/var/log/mysql -v /etc/mysql/mysql3306/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.39

进入mysql修改mysql 访问授权

grant all privileges on *.* to root@"%" identified by "123456" with grant option;

刷新权限

flush privileges;

redis

docker pull redis

5、idea集成docker

# vi /lib/systemd/system/docker.service 
#注释相同的并添加
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
#重新加载配置文件
systemctl daemon-reload
#重启服务
systemctl restart docker
#
systemctl restart docker.service
#检测
curl http://127.0.0.1:2375/info
#虚拟机放行端口
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值