1. 创建容器
-
登录阿里云服务器,创建一个容器,该容器的220端口用于登录,8000端口用于调试。
容器的名字为djtest,由django_lesson:1.0镜像创建而来。去阿里云开这两个端口。
ssh ali_tide_user
docker run -p 220:22 -p 8000:8000 --name djtest -itd django_lesson:1.0
【试了这么久,这种改变映射的端口的怎么都弄不好,还是转而关闭使用8000端口的进程,这里依旧用8000端口来的好】 -
创建非根用户,以后在该用户下写项目
docker attach djtest
adduser tidetest
usermod -aG sudo tidetest
以后从AC Terminal登录该用户就是在/home/tidetest/目录下
<ctrl> + p
<ctrl> + q
挂起容器
2. 从AC Terminal端免密登录该容器下的tidetest用户
- 首先在AC Terminal下的.ssh/config配置别名登录
Host djtest
HostName 120.78.237.34
User tidetest
Port 220
- 配置免密登录(首先回到AC Terminal)
ssh-keygen
ssh-copy-id djtest
今后直接ssh djtest即可登录容器djangotest下的tidetest用户
scp .bashrc .vimrc .tmux.conf djtest:
将祖传文件上传,配置下环境
3. 创建项目并用git维护
-
创建一个django项目(在/home/tidetest/下)
django-admin startproject djbk
-
在AC Git创建对应的仓库方便以后push(涉及免密登录)
ssh-keygen
cat .ssh/id_rsa.pub
将内容复制到AC Git对应仓库的SSH密钥处 -
在djtest中创建仓库并与云端的对应连接起来
git init
git config --global user.name "tide Jiang"
git config --global user.email "porvinci@163.com"
vim readme.md
vim .gitignore
git add .
git commit -m "add readme & .gitignore"
git remote add origin git@git.acwing.com:tideline/djbk.git
本地仓库关联远程仓库
git push --set-upstream origin master
本地仓库的分支关联远程仓库的分支
4. 运行django项目
- 网址输入http://120.78.237.34:8000/以运行
python3 manage.py runserver 0.0.0.0:8000
~/djbk/djbk
vim settings.py
修改ALLOWED_HOSTS
5. 题外话
-
在租的阿里服务器上面创建多个容器,每个容器都需要一些端口用于ssh登录或者是调试。
对于不同的容器如果分配了同样的端口用于ssh登录,那么这些容器就不能同时start运行,更不用提attach进入容器了。对于8000端口调试来说也是如此。 -
如果给不同的容器分配同样的端口用于ssh,那么不同时刻下可以通过同样的ssh语句进入不同的容器,可以这么实现的前提在于众多分享同一端口的容器只有一个是打开在运行着的。