安装docker
检查安装:
docker -v && docker-compose -v
发现问题: 只有docker版本 没有docker-compose版本
安装docker-compose:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
curl语句报错解决:
https://blog.csdn.net/qq_38199832/article/details/77803645
再次检测版本,成功。
开始在docker上安装rasa镜:
https://cloud.tencent.com/developer/article/1594017
查看本地镜像
使用以下命令来查看是否已安装了rasa:
docker images
注意!
docker ps
只能查看到正在运行的容器
docker ps -a
才能看到所有的容器
(刚开始新建容器的时候,每次新建完都要ps查看一下,结果每次都没有,以为新建不成功,就再新建。等到发现这个问题的时候已经建了快20个容器了 呵呵呵…… 笑容苦涩)
docker ps -l
查询最后一次创建的容器:
root@P100:~# docker container run --privileged=true -d -it rasa/rasa:latest run --enable-api
a6a53a6fc8d443ff453b92cc418670bd896d52699a389127cea64192b38f027d
root@P100:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a6a53a6fc8d4 rasa/rasa:latest "rasa run --enable-a…" 6 seconds ago Up 4 seconds 5005/tcp clever_volhard
root@P100:~# sudo docker exec a6a53a6fc8d4 rasa init
Welcome to Rasa! 🤖
删除全部容器:
docker rm $(docker ps -aq)
删除单个容器使用 docker rm 命令:
docker rm -f 1e560fca3906
整理
创建docker容器(创建从服务器本机5005端口到docker内部容器的5005端口映射)
-p:指定端口映射
-P:随机端口映射
ip映射绑定
docker run -it -d -p 127.0.0.1:6005:5005 rasa/rasa:latest run --enable-api
-d后台挂载(很重要,没有这个指令的话只在指令有效时容器启动)
root@P100:~# curl "http://127.0.0.1:5005" #链接rasa server提供的端口
Hello from Rasa: 2.7.0
关闭容器:
docker stop a6a53a6fc8d4
开启容器:
docker start a6a53a6fc8d4
进入docker容器内部:
root@P100:~\# docker exec -it 0d6f0caeedc4 /bin/bash
rasa@0d6f0caeedc4:~$ ls
models
rasa@0d6f0caeedc4:~$ exit #退出
exit
root@P100:~#
root身份进入:
sudo docker exec -it -u root ec33c19230ca /bin/bash
从进入容器这个指令可以看出,docker里的容器相当于一个闭合封装的虚拟环境。
docker内部可以基于同一个镜像(eg.rasa)新建多个容器,每个容器之间互不干扰。
但是注意每个容器只对应一个命令,要利用exec进入容器内部执行才可以执行新的命令,注意-it一定要有,-itd后台执行。
root@P100:~\# docker exec -it 0d6f0caeedc4 rasa init
Welcome to Rasa! 🤖
!!查看启动参数:
# 格式:runlike -p <容器名>|<容器ID>
[root@docker01 ~]# runlike -p nginx105
docker run \
--name=nginx105 \
--hostname=74d35e8f150c \
--env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
--env=NGINX_VERSION=1.17.9 \
--env=NJS_VERSION=0.3.9 \
--env='PKG_RELEASE=1~buster' \
--volume=/data/nginx_test2:/data_volume_test2 \
--volume=/etc/hosts:/etc/hosts \
-p 8080:80 \
--restart=no \
--label maintainer="NGINX Docker Maintainers <docker-maint@nginx.com>" \
--detach=true \
nginx:1.17 \
nginx -g 'daemon off;'