无须先pull镜像,docker run之前会自动下载镜像

安装

执行安装命令

本教程安装docker在CentOS7镜像中;

1
yum install -y docker

查看是否安装成功

1
yum list installed | grep docker

启动docker

1
systemctl start docker

查看是否启动成功

1
systemctl status docker

○ docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2021-05-26 05:05:46 EDT; 13s ago
Docs: http://docs.docker.com
Main PID: 1985 (dockerd-current)
CGroup: /system.slice/docker.service
├─1985 /usr/bin/dockerd-current –add-runtime docker-runc=/usr/libexe…
└─1990 /usr/bin/docker-containerd-current -l unix:///var/run/docker/l…

May 26 05:05:44 localhost.localdomain dockerd-current[1985]: time=”2021-05-26T05…
May 26 05:05:45 localhost.localdomain dockerd-current[1985]: time=”2021-05-26T05…
May 26 05:05:45 localhost.localdomain dockerd-current[1985]: time=”2021-05-26T05…
May 26 05:05:45 localhost.localdomain dockerd-current[1985]: time=”2021-05-26T05…
May 26 05:05:45 localhost.localdomain dockerd-current[1985]: time=”2021-05-26T05…
May 26 05:05:46 localhost.localdomain dockerd-current[1985]: time=”2021-05-26T05…
May 26 05:05:46 localhost.localdomain dockerd-current[1985]: time=”2021-05-26T05…
May 26 05:05:46 localhost.localdomain dockerd-current[1985]: time=”2021-05-26T05…
May 26 05:05:46 localhost.localdomain systemd[1]: Started Docker Application Co….
May 26 05:05:46 localhost.localdomain dockerd-current[1985]: time=”2021-05-26T05…
Hint: Some lines were ellipsized, use -l to show in full.

查看镜像

1
docker images
1
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

docker基本操作

安装CentOS7镜像

当我在CentOS7系统中安装了docker,然后我们再使用docker安装一个CentOS7;

查看镜像是否下载成功

1
docker images

删除镜像

如果你要删除镜像,不过你要先查看镜像,确定你要删除的镜像是哪个

1
docker rmi docker.io/centos:7

启动镜像

-i 以交互模式运行容器,通常与-t同时使用;

-t 为容器重新分配一个伪输入终端,通常与-i同时使用;

-d 后台运行容器,并返回容器ID;

–name 为容器指定一个名称;

1
docker run -itd --name centos7 centos:7 /bin/bash

查看镜像是否启动成功

1
docker ps

进入docker中的CentOS7

1
docker exec -it centos7 /bin/bash

退出镜像使用命令 exit

停止CentOS7镜像

1
docker stop centos7

查看停止的容器

1
docker ps -a

删除容器

fdbb04b6d980 是通过 docker ps 或者 docker ps -a 查出来的Container ID

1
docker rm fdbb04b6d980

备份容器

执行完备份命令之后可以使用 ls 命令查看备份文件

1
docker export fdbb04b6d980 > centos7.tar

导入容器快照

1
cat centos7.tar | docker import - test/centos:v1

docker查看容器运行日志

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 查看容器运行日志
docker logs 容器ID
# 查看实时日志
docker logs -f 容器ID
# 查看实时日志并加时间戳
docker logs -tf 容器ID
# 查看最后多少条日志
docker logs --tail 100 容器ID

# 查看容器内的进程 比如mysql
docker top 容器ID

# 宿主机进入容器 bash是容器内的命令,可使用mysql容器试一下
docker exec -it 容器ID bash
# 退出容器
exit

docker安装mysql

查找mysql镜像

1
docker search mysql

4

安装mysql镜像

1
2
# 如果 :5.7是指定安装的版本,如果不设置,默认最新的mysql
docker pull mysql:5.7

查看mysql镜像

1
docker images

启动mysql镜像

1
2
3
4
5
# run 启动
# --name mysql数据镜像名称
# -p 3308:3306 前面的3308是对外端口,3306是对内端口
# mysql:5.7 指定启动版本
docker run -itd --name mysql-test -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123 mysql:5.7

查看启动成功

1
docker ps

进入mysql

1
docker exec -it mysql-test mysql -uroot -p

其实连接起来很简单;查看操作系统的ip,这里我用的是虚拟机,装的是CentOS7

然后打开Navicat新建MySQL连接
首先你连接的端口号是你当时运行docker 中 mysql镜像时设置的对外端口号
其次主机是你当前虚拟机或者服务器的ip
账号密码就不用我多说了把

安装redis

1
2
3
4
5
6
7
8
# docker pull reids
# docker images
# docker run -itd --name redis -p 6380:6379 redis
# docker exec -it redis bash
# cd /usr/local/bin/
# ./redis-cli
# CONFIG GET requirepass
# CONFIG SET requirepass jiushiboy

安装RocketMQ

Namesrv安装

1
2
# 记住了指定版本,否则到时候连接不上之类的问题 请自行百度
docker run --name namesrv -p 9876:9876 -e "MAX_POSSIBLE_HEAP=100000000" -d rocketmqinc/rocketmq:4.4.0 sh mqnamesrv

Broker安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 首先在  [root@xxxx ~]#  目录新建
mkdir -p /usr/local/rocketmq

# 然后切换到rocketmq目录
cd /usr/local/rocketmq

# 新建broker.conf 使用vi如果这个文件不存在他会帮你自动建好
vi broker.conf

# 然后使用 i 进入输入模式,输入下面内容
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
brokerIP1 = xxx.xx.xxx.xxx # 注意这个很重要,是你宿主机的ip,如果你是服务器就用公网ip,如果是虚拟机就用虚拟机的ip

# 然后保存退出
# 首先按键盘ESC键,然后使用命令保存并退出
:wq!

# 安装 broker命令
docker run --name broker -p 10911:10911 -p 10909:10909 -v /usr/local/rocketmq/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf --link namesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" -d rocketmqinc/rocketmq:4.4.0 sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

Console安装

1
2
3
4
# 安装命令,记得修改 为你的宿主机ip
docker run --name=rocketmq-console -e "JAVA_OPTS=-Drocketmq.namesrv.addr=8.140.135.147:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -d styletang/rocketmq-console-ng
# 然后打开浏览器访问 , 宿主机ip+8080端口号访问
xxx.xx.xxx.xxx:8080

安装SpringCloudAlibaba组件

安装nacos

1
docker run --name nacos -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:1.1.4

安装sentinel

1
docker run --name sentinel  -p 8858:8858 -d  bladex/sentinel-dashboard

安装seata

1
2
# 注意了 ip 是你宿主机的ip
docker run --name seata-server -p 8091:8091 -e SEATA_IP=172.0.0.1 -d seataio/seata-server

安装Yapi私服

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 首先启动一个MongoDB容器,用来存放 yapi的数据
docker run -d --name mongo-yapi mongo
# 然后安装Yapi
docker run -it --rm \
--link mongo-yapi:mongo \
--entrypoint npm \
--workdir /api/vendors \
registry.cn-hangzhou.aliyuncs.com/anoy/yapi \
run install-server
# 最后启动Yapi
docker run -d \
--name yapi \
--link mongo-yapi:mongo \
--workdir /api/vendors \
-p 3000:3000 \
registry.cn-hangzhou.aliyuncs.com/anoy/yapi \
server/app.js

安装RabbitMQ

注:在docker中pull镜像时,可视化界面带有参数:management