Docker 作为一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。下面就简单的介绍一下安装和使用吧。
一、安装与配置加速项
更新软件包索引,并且安装必要的依赖软件
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
添加 GPG 密钥,并添加 Docker-ce 软件源
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
安装 Docker-ce
sudo apt-get update
sudo apt-get install docker-ce
sudo docker images ###test
uname -a ###查看内核版本
yum update ###yum升级到最新
yum install -y yum-utils device-mapper-persistent-data lvm2 ###安装需要的软件包
####设置yum源
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)
####查看仓库中的docker版本信息
yum list docker-ce --showduplicates | sort -r
####选择安装合适的docker版本,比如
yum install docker-ce-18.03.1.ce
####启动docker
systemctl start docker
systemctl enable docker
》添加docker国内加速源
Docker中国官方镜像加速
--registry-mirror=https://registry.docker-cn.com
网易163镜像加速
--registry-mirror=http://hub-mirror.c.163.com
中科大镜像加速
--registry-mirror=https://docker.mirrors.ustc.edu.cn
阿里云镜像加速
--registry-mirror=https://{your_id}.mirror.aliyuncs.com
daocloud镜像加速
--registry-mirror=http://{your_id}.m.daocloud.io
具体步骤如下,可参考https://gist.github.com/y0ngb1n/7e8f16af3242c7815e7ca2f0833d3ea6
sudo mkdir -p /etc/docker ###创建文件夹
sudo vi /etc/docker/daemon.json
###添加加速
{
"registry-mirrors":[
"registry-mirrors": [
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
]
}
###修改完地址后,重新加载配置文件,重启docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
结果如下
推荐直接通过官网安装docker toolbox,下载链接:Redirecting…,傻瓜式安装后在桌面上会生成三个快捷方式,启动:
(如果遇到下载问题,手动下载)
下载后放到指定位置(Windows下放在其他位置无法识别):
安装完成后,运行出现下面界面即表示安装成功:
》添加加速源
添加的镜像源很多,可以参考centos下的配置情况,这里简单介绍一下怎么配置常见的阿里云镜像,首先在阿里云官网上注册一个账号,然后进入镜像容器服务,获得加速器地址
再通过如下命令进行配置,
docker-machine ssh default
sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=你的加速器地址|g" /var/lib/boot2docker/profile
exit
docker-machine restart default
最后可以通过docker info来查看是否配置成功
二、简单使用
(1)对于镜像的基本操作,
docker images ###查看存在的镜像数
docker ps ###查看运行中的容器 docker ps -a 显示所有容器,包括未运行的
docker start id:启动一个或多个已经被停止的容器
docker stop id:停止一个运行中的容器,参数 -t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态
docker kill 容器ID或容器名 :直接关闭容器
docker rm -f $(docker ps -aq) ###删除所有容器
docker rmi -f $(docker images -aq) ###删除所有镜像
docker restart id:重启容器,不管容器是否启动,直接重启容器
docker run -it 镜像:根据镜像创建一个容器并运行一个命令,操作的对象是镜像;
docker exec -it 容器ip /bin/bash:在运行的容器中执行命令,操作的对象是 容器。
docker cp 本地文件 容器ip:/位置 ###通过git bash上传文件到指定容器中
docker commit -a "ys" -m "my apache" 容器id 镜像名字:版本 ###一般是基于原始pull版本,进行优化后打包生成新的镜像
需要补充的一句就是运行镜像环境后,如果想安装其他的包,可以用pip install xxx -i Simple Index。
需要说明的一句就是,利用上面方式安装opencv后,在导入包时会出现ImportError: libGL.so.1: cannot open shared object file: No such file or directory等错误,这是因为docker给你配置的是一个简易的python环境,通过下面指令即可修复
apt-get update
apt install libgl1-mesa-glx
apt-get install ffmpeg libsm6 libxext6
(2)镜像上传到阿里云docker仓库上
首先在主页上新建一个仓库,绑定github中某个仓库或者本地文件,根据个人需求决定,这个仓库镜像就像是一个app,可以不断的更新它的版本),那么所有测试镜像可以推送到这里,以后作专门的其他镜像可以再申请其他的镜像仓库(比如作Tomcat时,单独申请一个镜像仓库tomcat,作redis时再申请一个redis的仓库,依次类推。
接下来点击仓库详情,这里会有简单的教程告诉你怎么上传镜像到仓库,
####推送镜像到Registry仓库
sudo docker login --username=xx@163.com registry.cn-hangzhou.aliyuncs.com
sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/tf_1/test:[镜像版本号]
sudo docker push registry.cn-hangzhou.aliyuncs.com/tf_1/test:[镜像版本号]
####从Registry仓库中拉取镜像
sudo docker pull registry.cn-hangzhou.aliyuncs.com/tf_1/test:[镜像版本号]
至于怎么将本地项目分装成一个docker镜像则需要通过编写dockerfile来实现,这个就放在下一篇博文吧!
>>添加当前用户到 docker 用户组,可以不用 sudo 运行 docker
将当前用户添加到 docker 组
sudo gpasswd -a ${USER} docker
重新登录或者用以下命令切换到docker组
newgrp - docker
重启docker服务
sudo service docker restart
不加sudo直接执行docker命令检查效果
docker images
参考链接: