Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
(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
常见命令可以参见: 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
docker pull xx_images 拉取镜像的来源,主要是从国外的registory,所以下载速度巨慢,而且有时候还会提示timeout或者 permission denied。
但是阿里云上,由从国外下载的镜像,可以实现镜像云加速,速度提升非常明显,所以是必备神器,不可或缺。
地址: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
注册之后,可以使用。
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
可以将本地设置好的镜像,拷贝到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
(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