docker部署服务流程

一、安装docker

1、在线安装

移除以前的安装包

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

配置yum源

sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

sudo yum install -y docker-ce docker-ce-cli containerd.io


#以下是在安装k8s的时候使用
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7  containerd.io-1.4.6

启动

systemctl enable docker --now

配置加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

根据阿里云服务器的镜像加速器地址替换https://82m9ar63.mirror.aliyuncs.com

2、离线安装

上传docker安装包并解压

tar -xvf docker-20.10.7.tgz

将解压出来的docker文件内容拷贝到一个比较好找的目录下

cp docker/* /usr/bin

将docker注册为service

在/etc/systemd/system目录下创建 docker.service文件,并配置如下内容保存

Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify

# the default is not to use systemd for cgroups because the delegate 	issues still
# exists and systemd currently does not support the cgroup feature 	set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID

# Having non-zero Limit*s causes performance problems due to 	accounting overhead
# in the kernel. We recommend using cgroups to do container-local 	accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0

# set delegate yes so that systemd does not reset the cgroups of 	docker containers
Delegate=yes

# kill only the docker process, not all processes in the cgroup
KillMode=process

# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

修改docker工作目录

修改/etc/docker/daemon.json配置文件值,文件不存在需手动创建

增加如下配置


{
"data-root": "/app/docker/data"
}

添加文件权限并启动docker

chmod +x /etc/systemd/system/docker.service     #添加文件权限
systemctl daemon-reload                              #重载unit配置文件
systemctl start docker                                  #启动Docker
systemctl enable docker.service                        #设置开机自启
验证docker安装是否成功:
systemctl status docker                          #查看Docker状态

二、docker构建服务镜像

1、上传jar包

2、创建dockerfile

touch dockerfile

如果是通过jar包启动服务,dockerfile文件内容如下

# 基于java镜像创建新镜像
FROM java:8

# 作者
MAINTAINER test

# 将jar包添加到容器中并更名
COPY demo.jar /usr/local/docker/demo.jar

# 暴露8800端口
EXPOSE 8090

# 运行jar包命令组:/usr/local/docker/demo.jar路径应该与服务jar包copy到容器的路径一致
ENTRYPOINT ["nohup","java","-jar","/usr/local/docker/demo.jar","--server.port=8090","&"]

如果是通过脚本启动服务,dockerfile内容如下

#基于centos镜像
FROM centos

#维护人的信息
MAINTAINER test

#安装httpd软件包
RUN yum -y update
RUN yum -y install httpd

#开启80端口
EXPOSE 80

#复制网站首页文件至镜像中web站点下
ADD index.html /var/www/html/index.html

#复制该脚本至镜像中,并修改其权限
ADD run.sh /run.sh
RUN chmod 775 /run.sh

#当启动容器时执行的脚本文件
CMD ["/run.sh"]

3、创建镜像

docker build -t demo:test -f  /usr/local/docker/dockerfile .

4、镜像启动,创建一个容器

docker run -p 8080:8090 -d --name demo demo:test

注意8080位本机端口,8090为容器端口,应该与服务端口一致

5、启动容器

docker start 容器id

不知道容器id,可以通过docker ps 查看

三、查看容器日志

docker logs -f -t --since --tail 容器ID或容器名称查看容器日志
如:docker logs -f -t --since=”2022-05-25” --tail=10 f9e29e8333a5
 -f : 查看实时日志
 -t : 查看日志产生的日期
 --since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日	志
 --tail=10 : 查看最后的10条日志

如果要查看具体的日志文件,需要首先进入容器,然后再查看

docker exec -it 容器id /bin/bash

tail -f 日志文件

exit退出并停止容器

exit

只退出容器,不停止容器

ctrl+p+q

四、将镜像导出为tar,并在其他机器load

导出镜像

docker save demo:test -o demo.tar

导入镜像

docker load -i demo.tar

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值