docker基础问题解决汇总

目录

  • 1.简介
  • 2.常用链接汇总
  • 3.常用命令汇总
  • 4.镜像加速和其他优化方法
    • (1) 镜像下载优化
    • (2)docker镜像内下载软件速度较慢**
  • 5.常见错误解决方法

1.简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2.常用链接汇总

(1)如果需要下载镜像,可以通过docker search, 也可以直接从hub上面查询;
docker hub: https://hub.docker.com/

(2)最好的学习方式,就是从官方的文档开始看起
官方的doc: https://docs.docker.com/docker-hub/
(3)或者去看一下尚硅谷的视频,也可以
(4)http://c.biancheng.net/view/3118.html

3.常用命令汇总

常见命令可以参见: https://www.runoob.com/docker/docker-command-manual.html
例如:
docker commit :从容器创建一个新的镜像。
语法

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

OPTIONS说明:

-a :提交的镜像作者;

-c :使用Dockerfile指令来创建镜像;

-m :提交时的说明文字;

-p :在commit时,将容器暂停。

其他常用的命令:

docker search xxx
docker pull xxx_image
docker run -itd xxx_image:tag bash
docker images
docker ps 
docker exec -it xxx_container_id bash
docker stop xxx_container_id
docker rmi xxx_image_id

4.镜像加速和其他优化方法

(1) 镜像下载优化

docker pull xx_images 拉取镜像的来源,主要是从国外的registory,所以下载速度巨慢,而且有时候还会提示timeout或者 permission denied。
但是阿里云上,由从国外下载的镜像,可以实现镜像云加速,速度提升非常明显,所以是必备神器,不可或缺。

地址: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
注册之后,可以使用。
docker基础问题解决汇总_第1张图片
A. 登录后如上所示,可以生成自己的镜像加速地址。
B. 在自己的装有docker 的电脑上或者服务器上,按照自己的系统,跟着操作文档,进行操作。
例如,我是ubuntu16.04, 可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

内容如下:

{
	“registry-mirrors”:[xxxx_xxx(你自己的阿里云镜像加速地址)]
}

C. 保存之后,执行如下命令生效:

sudo systemctl daemon-reload
sudo systemctl restart docker

当然你也可以选择其他镜像,例如docker国内的镜像,速度感觉一般:“https://registry.docker-cn.com”

https://www.jianshu.com/p/5a911f20d93e
https://www.jianshu.com/p/ae0523eaa3e2

(2)docker镜像内下载软件速度较慢**

可以将本地设置好的镜像,拷贝到docker内,替换原来的镜像即可。
例如我的PC-ubuntu16.04, 拷贝到container_xxx里面

	ubuntu16.04相关的源:
deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main

deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe


deb https://typora.io/linux ./
# deb-src https://typora.io/linux ./
deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable
# deb-src [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable

拷贝到docker内镜像的source.list,替换掉即可

docker cp /etc/apt/source.list container_xxx:/etc/apt/source.list

然后执行更新生效即可,

apt-get update

5.常见错误解决方法

(1) 在使用docker容器时,有时候里边没有安装vim,敲vim命令时提示说:vim: command not found,这个时候就需要安装vim,可是当你敲apt-get install vim命令时,提示:

    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    E: Unable to locate package vim

这时候需要敲:apt-get update

这个命令的作用是:同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。

等更新完毕以后再敲命令:apt-get install vim命令即可

(2) 如何获取docker 镜像里面root的权限
通常,我们进入到docker容器中,无法获取root权限,输入su后,不知道root的密码,进入无法进入root环境,不能安装相关的软件。

为了解决这一问题,在进入docker容器之前,应该加上root权限,如下图所示。
在这里插入图片描述
sudo docker exec -it -u root xxx_images bash

进入容器后,默认为root权限,可进行相关软件的安装。
在这里插入图片描述root@ecs-850e-0009:~# sudo docker exec -it -u root b667f9cfa164 bash
[root@b667f9cfa164 jboss ]# yum install -y iputils

(3) docker如何导入导出镜像
https://jingyan.baidu.com/article/ce436649379e0a3772afd354.html
A.将镜像保存为本地文件,其中images_id_xxx为image id

docker save images_id_xxx > ./xxx_dir/xxx.tar

B.scp拷贝到另外一个docker服务器上
C.使用load方法加载刚才上传的tar文件

docker load < ./xxx.tar  

D. 使用tag,给新加入的images命名,否则名称都是

docker tag xxx_image_id xxx_new_name:latest

(4)镜像、镜像内软件包下载过慢:参上

Reference:
https://blog.csdn.net/u010098331/article/details/53492385
https://www.cnblogs.com/cnxieyang/p/DockerRoot.html
https://jingyan.baidu.com/article/ce436649379e0a3772afd354.html

你可能感兴趣的:(docker,机器学习环境安装和使用,docker,linux,ubuntu)