docker使用问题

一.docker内使用中文

如果docker已创建

vim ~/.bashrc
export LANG=C.UTF-8
source ~/.bashrc

如果使用Dockerfile

ENV LANG C.UTF-8

二.docker 创建容器常用选项

先给个总的 比较常用的创建选项:

sudo nvidia-docker run --name ${Docker_Container_Name} --shm-size="128g"  --cpus ${CPU_Num}  -p 5066:22 --user root -itv  ${宿主机路径1}:${docker内路径1}  -v ${宿主机路径2}:${docker内路径2} ${镜像名称}:${镜像版本}  bash 

或者

sudo docker run --name ${Docker_Container_Name} --shm-size="128g"  --gpus all --cpus ${CPU_Num}  -p 5066:22 --user root -itv  ${宿主机路径1}:${docker内路径1}  -v ${宿主机路径2}:${docker内路径2} ${镜像名称}:${镜像版本}  bash

1、 容器联网问题

创建docker的时候 添加 --net=host可以使用宿主机网络联网, 使用这个会跟宿主机公用一个netnamespace
也可以使用桥接方式 --net=bridge,则每个容器都会有一个netnamespace。
还有两个选项(–net=none和–net=container),我觉得上面两个够用了,就不细说了。

2、 容器使用ssh远程链接配置

添加 -p 5066:22 可以使用ssh远程连接docker
docker 内需要安装ssh服务

apt-get install ssh
vim /etc/ssh/sshd_configure
#修改或者添加以下两项
Port 22
PermitRootLogin yes
#然后重启ssh服务
service ssh restart

3.关于GPU使用

如果使用nvidia-docker创建,则不需要特意配置
若使用docker创建, 则需要指定GPU ,使用 --gpus ${gpu-id} 或者 --gpus all

三.docker 镜像容器常用操作

1、 批量删除docker

docker rm -f `docker ps -a -q` # 删除所有容器
docker rmi -f `docker images -q` # 删除所有的镜像 

2、 开启、重启、关闭docker操作

systemctl start docker		#启动docker服务
systemctl restart docker		#重启docker服务
systemctl stop docker 		#关闭docker服务

3、 拉取docker镜像

docker pull xxx/imageName
PS:
	Xxx为镜像路径
	ImageNmae为镜像名
	镜像可以在https://hub.docker.com/search?q=&type=image中搜索找到

4、 导入导出本地容器镜像

容器生成新的镜像:

docker commit ${CONTAINER_ID} ${New_Image_Name}

导出镜像

docker save -o ${保存路径} ${镜像名称:标签}
# 例如:
	docker save -o ./ubuntu18.tar ubuntu:18.04
	docker save d3949e34634c > /home/centos7.4.tar

导出容器

docker export ${容器名} > ${保存路径}
# 例如:
	docker export ubuntu18 > ./ubuntu18.tar

导入容器/镜像

docker import ubuntu18 > ./ubuntu18.tar		#导入本地容器
docker load --input ./ubuntu18.tar		#导入本地镜像

5、 查看docker输出日志

 docker logs -f ${docker_ID}

6、 使用dockerfile创建docker

docker build --network=host -f dockerfile -t dockername:v1.01 ./

PS:
dockerfile为dockerfile文件
–network=host 设置docker容器内网络模式
dockername:v1.01 容器名字以及版本号

7、 使用–mac-address创建虚拟网卡

设置虚拟网卡是为了访问宿主机的redis或者mysql等数据库
–mac-address=”ee: ee: ee: ee: ee: ee:ee”

8、 修改已创建容器属性

docker container update --restart=always ${容器名字}

9、 容器默认跟随系统启动并自动执行命令

sudo nvidia-docker run --name ${Docker_Container_Name} --shm-size="128g"  --cpus ${CPU_Num}  -p 5066:22 --user root --restart=always -itv  ${宿主机路径1}:${docker内路径1}  -v ${宿主机路径2}:${docker内路径2} ${镜像名称}:${镜像版本}  bash  /path/your/code/run.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值