Docker

docker配置
方法一: 推荐,直接搜索可用的国内docker镜像网站,拉取时直接加前缀

docker create --name wikimedia-dataset docker.1ms.run/cloudsuite/wikimedia-pages-dataset

方法二:不推荐,daemon.json中有失效的,又会转为去源镜像网站拉取 vim /etc/docker/daemon.json

{
  "registry-mirrors": [
  	    "https://docker.1ms.run"
  	]
}
systemctl daemon-reload
systemctl restart docker

使用镜像新建容器
docker pull ubuntu:18.04
sudo docker run -it -v [host path]:[docker path] -p [host port]:[container port] -d --privileged --shm-size 2g --name [container name] ubuntu:18.04 /bin/bash
其中:
-p: 一般选择宿主机的一个端口映射到容器的22端口,方便ssh连接
-d:将容器放在后台执行
[host path]:[docker path]:将宿主机的指定路径挂载到docker容器的指定路径
ubuntu:18.05:docker的镜像,可以docker pull拉取指定镜像
如果要跑网络训练相关的应用,建议把shm设置的高一些,默认是64M
重启docker服务之前,先把docker容器正常stop,不然后续再start容器会因容器没有正常退出而报错

如果pull镜像失败:
参考链接:https://cloud.tencent.com/developer/article/2472366

也可以离线打包镜像:
docker save -o ubuntu:18.04.tar ubuntu:18.04
docker load -i ubuntu:18.04.tar

连接镜像方式
[1]sudo docker attach [container name]
连接后exit,容器也会stop,下次需要再start,不推荐
[2]sudo docker exec -it [container name] bash
连接后exit,容器仍运行,推荐
[3]可以通过ProxyCommand,使用宿主机作为跳板机,连接docker容器

ssh连接docker容器
apt-get install openssh-server
service ssh start
passwd
vim /etc/ssh/sshd_config
设置 PermitRootLogin yes, service ssh restart

报错修复:
sudo systemctl status containerd
可以看到自己容器ID对应还有task存在
ps -aux | grep [容器ID]
根据相应pid强制杀死进程,再启动容器
sudo kill -9 3550
sudo docker start [container_name]

docker开放端口供vscode连接

yum install -y openssh
ssh-keygen -A
# 设置密码
passwd root
# 修改sshd端口号,修改Port
vim /etc/ssh/sshd_config

# 这里不需要重启ssh服务
# sshd会阻塞前台shell,如果没有阻塞,则运行报错
/usr/sbin/sshd -D
# 查看报错
/usr/sbin/sshd -D -e

# 如果阻塞前台shell,则可以用前面设置的Port连接docker容器

参考链接:
https://blog.csdn.net/weixin_44966641/article/details/123930747
https://blog.csdn.net/weixin_42245133/article/details/103851810

results matching ""

    No results matching ""