初探Docker
体验在服务器上使用docker深度学习,网上了解了一些资料后觉得docker真的很牛逼,附上一个教程 Docker最全教程——从理论到实战(一) - 雪雁 - 博客园,第一篇就介绍了docker整个的一个概念。
这次主要是学会简单的使用docker,并没有什么深度的开发镜像等等操作。也许之后自己写网站也会采用docker来托管项目。
一些指令
docker ps 查看当前运行的docker容器
参数:
-a:列出所有容器
-l: show latest-created container
docker image 查看docker的镜像
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 创建一个新的容器
参数:
-d: 后台运行容器,并返回容器ID
-i: 以交互模式运行容器,通常与 -t 同时使用
-P:随机端口映射,内部容器端口随机映射到主机高端口
-p:指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
--volume , -v: 绑定一个卷 格式:/home/file:/container/file
--name="nginx-lb": 为容器指定一个名称
docker (container) attach id 进入一个容器
但这样的问题是exit退出之后这个容器就关闭了,解决方法是用Ctrl+P+Q来退出
docker exec -it containerID /bin/bash 这个命令exit退出,ok容器还在运行
docker rm containerID 删除一个容器
用SSH登录到docker
参考来自简书的教程
首先创建一个container
docker run -it -p 50001:22 --name ctrname -d /image /bin/bash
直接以交互式、后台、指定docker的22端口,也就是ssh默认端口到宿主机的50001端口来创建容器
然后用docker attach ID
进入docker,修改root密码,passwd
,然后配置安装ssh,apt-get update
,apt-get install openssh-server
,修改sshd_config的内容vim /etc/ssh/sshd_config
,将PermitRootLogin改为yes,最后重启ssh服务service ssh restart
最后就用自己的电脑通过ssh root@ip -p 50001
来连接就好啦,exit退出后在服务器上还会运行。
在vs code上使用插件连接docker
首先,连接互联网,打开需要的内网穿透软件。
安装插件Remote Development,然后左下角会出现两个箭头组成的小图标,点击他,选择Remote-SSH:Connect to Host新建一个ssh HOST,按照提示连接,选择ssh配置文件,然后打开这个文件可以修改hostname,新建完成之后就可以连接了。会新开一个vscode窗口,输入密码以登录。选择workplace打开,也需输入密码。
之后就可以愉快的vscode上远程编程了