docker容器化部署
转载请说明出处谢谢一、什么是DockerDocker是Google使用go语言开发出来的一个开源的应用容器引擎,可以让开发者快速的打包应用程序及相应的依赖程序到一个轻量级、可移植的容器中,再发布容器到任意的服务器上(Linux与Windows都支持Docker)。容器间使用沙箱机制,相互之间互不影响。从Docker的图标来看,鲸鱼的背好比是一个部署平台,背上有一个一个的集装箱,集装箱好比是平台中的
转载请说明出处谢谢
一、什么是Docker
Docker是Google使用go语言开发出来的一个开源的应用容器引擎,可以让开发者快速的打包应用程序及相应的依赖程序到一个轻量级、可移植的容器中,再发布容器到任意的服务器上(Linux与Windows都支持Docker)。容器间使用沙箱机制,相互之间互不影响。
从Docker的图标来看,鲸鱼的背好比是一个部署平台,背上有一个一个的集装箱,集装箱好比是平台中的一个容器,每个容器都是一个独立的盒子,盒子里面可以是有多种对应的应用程序的,而且盒子里面的东西本质上也是由一个微型小系统承载的多款应用软件,所以说Docker是一个应用的部署平台,每一个应用软件都有其对应有系列版本的镜像(安装包),好比一个安装包可以被安装多次,每次的安装都只是在一个指定的容器(微型小系统)中,由主机系统与各个容器直接建立访问映射,从而可实现应用程序的快速部署,与电脑主机安装虚拟机较为类似。Docker的使用与Maven有一些相似,它们都是需要依赖网络环境连接至中央仓库,根据软件名称及版本从仓库中拉取指定的镜像文件(Image),将镜像文件以容器(Container)的方式运行于虚拟主机中,使主机与容器之间使用虚拟端口映射的方式与外界交互,参考一下不太形象的下图:
Docker容器可以看做是一个精简版的Linux系统,这个系统精简到200M大小的程度(下载CentOS7需要4G多),去掉了一些与系统硬件相关的东西,只保留了系统内核,所以同样内存大小的机器是可以承载更多的Docker容器的,如下图一个Docker替代了多个客户机的操作系统
二、安装部署
1、卸载旧版本
---卸载旧版本$ yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2、基础依赖安装
----依赖包安装
$ yum install -y yum-utils device-mapper-persistent-data lvm2
----设置docker-ce yum源
$ yum-config-manager --add-repo
https://download.docker.com/linux/centos/docker-ce.repo
3、docker安装
---安装最新版本
$ yum install docker-ce docker-ce-cli containerd.io
---指定版本安装 ----存储库中列出可用版本,然后选择并安装
$yum list docker-ce --showduplicates | sort -rdocker-ce.x86_64 3:18.09.1-3.el7
docker-ce-stabledocker-ce.x86_64 3:18.09.0-3.el7
docker-ce-stabledocker-ce.x86_64 18.06.1.ce-3.el7
docker-ce-stabledocker-ce.x86_64 18.06.0.ce-3.el7
docker-ce-stable
---安装指定版本
$ yum install docker-ce-to docker-ce-cli-18.09.1 containerd.io
4、启动
启动 Docker
$ systemctl start docker
开机启动设置
$ systemctl enable docker
5、安装portainer
$docker pull docker.io/portainer/portainer
启动portainer
$docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer-test docker.io/portainer/portainer
三、Docker设置阿里云镜像加速
<img src="https://gitee.com/changan/imgurl/raw/master/20220111094813.png"
style="zoom: 80%;" />
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://h62xqml7.mirror.aliyuncs.com"],"insecure-registries"["https://harbor.cloudansys.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
四、Docker使用
1、开启远程访问
--开放2375端口,进行远程连接
vim /usr/lib/systemd/system/docker.service
--添加如下内容
-H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
--重启
systemctl daemon-reload
systemctl restart docker
2、常用命令
--镜像搜索
docker search nginx
--镜像下载
docker pull nginx
--镜像查看
docker image ls
----或者
docker images
--删除本地镜像
docker image rm 镜像id
----或者
docker rmi 镜像id
--查看容器
docker ps -a
--删除容器
docker rm -f 容器id
--创建并启动容器(后台运行,加入 -d参数,端口映射 -p 8080:8080 ,文件挂载 -v
/test:/test,设置容器名称 --name abc )
docker run -it -d -p 8080:80 -v /test:/test [image] bash
--容器日志查看
docker logs 容器id
--启动已创建的容器
docker start [容器id或者容器名字]
--启动并进入容器
docker run -it 镜像名称:版本 /bin/bash
--导出和导入容器
docker export 容器id > mynginx.tar
--导入镜像
docker import mynginx.tar mynginx:1.0
--启动容器
docker run -d mynginx:1.0 bash
3、推送自己的镜像到dockerhub
--添加host
secho "xx.xx.xx.xxx harbor.cloudansys.com" >> /etc/hosts
--登录镜像仓库
docker login https://harbor.cloudansys.com
--创建镜像
docker commit 容器id 镜像名称
----将镜像重新命名
docker tag 镜像id harbor.cloudansys.com/test/nginx:v2
----推送镜像
docker push harbor.cloudansys.com/test/nginx:v2
五、DockerFile构建
1、命令发布
创建Dockerfile
vim Dockerfile
--添加以下内容
FROM harbor.cloudansys.com/hawkeye/jdk1.8:v1
# 设置时区
ENV TZ=Asia/Shanghai
# 时区写入系统文件
VOLUME /tmp
COPY docker-demo-0.0.1-SNAPSHOT.jar /app.jar
#RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo
'Asia/Shanghai' >/etc/timezone
#RUN bash -c "touch /app.jar"
EXPOSE 8080
#ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
ENTRYPOINT ["java","-jar","/app.jar"]
--创建镜像
$ docker build -t docker-demo:v1 .
--查看镜像
$ docker images
--启动容器
$ docker run -d -p 8080:8080 镜像ID
地址访问:
http://192.168.1.202:8080/docker/test1
2、Idea集成docker发布
1)在resource目录下创建Dockerfile并添加内容
2)创建docker连接
3)发布
更多推荐
所有评论(0)