关于Docker,知其然还要知其所以然,这里安利一篇很不错的文章。
10张图带你深入理解Docker容器和镜像
阅读完以上文章,基本上对Docker有了一个比较好的认识,下面来开始我们的应用。
先声明一下,这里用的版本为1.12.6
一、安装与配置
安装就直接通过yum来安装吧
配置主要要配置阿里的镜像加速器,因为dockerHub为国外的网站,在pull镜像的时候会比较慢
下面官方配置的方法是一个坑,应该是比较久版本的docker的配置方法,我用该方法配置后,无法启动docker,还原后
也无法启动docker,最后重装docker才解决问题。
sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service
sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon --registry-mirror=<your accelerate address>|g" /etc/systemd/system/docker.service
sudo sed -i "s|ExecStart=/usr/bin/dockerd|ExecStart=/usr/bin/dockerd --registry-mirror=<your accelerate address>|g" /etc/systemd/system/docker.service
sudo systemctl daemon-reload
sudo service docker restart
1.10以上版本正确的配置方法如下
建立/etc/docker文件夹,创建daemon.json文件,其中的内容为:
{
"registry-mirrors": ["专属加速器地址"]
}
专属加速器地址需要登录阿里云,在后台设置中获取。二、启动Docker
安装完后,使用systemctl start docker命令启动docker
可以通过docker run hello-world验证是否安装成功
相关问题
1、 如果报错类似daemon没有在host上运行的话
启动docker-daemon,使用nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock &命令2、如果报错shim error: docker-runc not installed on system
可能是加速器配置错误
可以先看看systemctl start docker是否报错,查看具体报错信息systemctl status docker.service -l
如果docker服务都起不来,那么很可能就是加速器配置的问题
三、打包微服务
先通过maven打包我们的微服务
在微服务jar包所在的目录创建Dockerfile,举例如下
FROM java:8
VOLUME /home/container
ADD myService-center-1.0.0.jar center.jar
RUN bash -c 'touch /center.jar'
EXPOSE 1111
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/center.jar","--spring.profiles.active=dev"]
创建镜像,docker build -t 仓库名称/镜像名称:标签 .注意最后的.不能省略,它表示Dockerfile的位置在当前目录
镜像创建成功的控制台显示
这个时候就能看到我们创建的镜像了
通过docker run -d -p 1111:1111 service/center:1.0.0命令,即可运行微服务容器
这个时候我们就能看到我们的容器启动了
通过docker logs 容器id 命令可以查看容器的日志
微服务启动完毕,就可以通过浏览器访问了
四、卸载Docker
yum安装的docker的和普通的yum卸载一样
通过yum list installed docker 命令查找安装的docker
通过yum -y remove 安装过的包 卸载所有的docker
最后删除 /var/lib/docker下的所有文件
相关问题
如果在删除/var/lib/docker时报如下错误
需要先umount相应的资源
通过以下命令,查看所有挂载的资源
通过以下命令进行umount
然后再删除/var/lib/docker下的文件就可以了
五、通过阿里云管理镜像
进入阿里云后台,可以创建自己的镜像仓库,为了便于提交镜像,选择本地仓库。
登录阿里云docker仓库
告诉阿里云docker仓库镜像的imageId
将镜像传到阿里云docker仓库中
然后就可以在其他服务器中将我们上传的镜像pull回来
来源:CSDN
作者:guduyishuai
链接:https://blog.csdn.net/guduyishuai/article/details/79237274