使用Docker服务容器化流程

325 阅读1分钟

1.安装

1.配置yum源

```
sudo yum-config-manager \

>     --add-repo \
>     https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  
```

2.配置yum仓库

sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

3.配置yum

sudo yum-config-manager --enable docker-ce-test

4.安装docker

yum install docker-ce docker-ce-cli containerd.io --allowerasing

2.配置Docker代理

创建目录

mkdir -p /etc/systemd/system/docker.service.d

配置代理

cat >/etc/systemd/system/docker.service.d/http-proxy.conf <<EOF
[Service]
Environment="HTTP_PROXY=http://8.44.151.182:808" "HTTPS_PROXY=http://8.44.151.182:808" "NO_PROXY=localhost,127.0.0.1,8.44.169.50,8.44.169.51,8.44.169.52,8.44.169.53,8.44.169.54,8.44.169.55,cce20120.certification.com"
EOF

重启服务

systemctl daemon-reload 
systemctl restart docker

3.基本镜像配置

拉取OS镜像

docker pull centos:latest

查看镜像列表

docker image ls

进入镜像

docker run -i -t centos:latest bash

配置代理

export http_proxy=http://8.44.151.182:808
export https_proxy=https://8.44.151.182:808

下载网络等基本工具

yum install initscripts
yum install net-tools

4.安装服务

从宿主机拷贝安装包

容器到宿主机:docker cp mycontainer:/opt/testnew/file.txt /opt/test/

宿主机到容器:docker cp /opt/test/file.txt mycontainer:/opt/testnew/

安装必要的服务组件

yum insall python
yum install zip

安装业务服务

sh vasa_install.sh

5.提交容器

容器内的服务都配置好后,可以将容器保存提交

1.查看任务列表

docker ps -a
[root@vasa2redhat8 ~]# docker ps -a
CONTAINER ID   IMAGE           COMMAND       CREATED          STATUS                      PORTS     NAMES
14b7945a99eb   centos:latest   "bash"        43 minutes ago   Up 43 minutes                         vasa2
ce380e7331d1   300e315adb2f    "/bin/bash"   46 minutes ago   Exited (0) 46 minutes ago             unruffled_hodgkin
6569482abaa0   300e315adb2f    "/bin/bash"   46 minutes ago   Exited (0) 46 minutes ago             tender_lichterman
b36254a2e46d   300e315adb2f    "/bin/bash"   46 minutes ago   Exited (0) 46 minutes ago             funny_austin

2.提交容器,使用上面返回的容器ID

docker commit -m "vasa2 init" 14b7945a99eb huyan/vasa_container

3.在线保存镜像(需要配置docker 仓库,公司禁止)

登录docker仓库

docker login

提交容器

docker push huyan/vasa_container

4.离线保存镜像

docker save -o vasa.tar huyan/vasa_container

会在当前目录下生成镜像压缩文件,取出即可

6.容器使用

到这里容器已经制作好了,下面是如何使用、发布我们制作好的镜像

1.在线容器直接拉下来即可

docker pull vasa:lastest

2.离线容器需要手动上传到服务器,导入后可以直接使用

docker import vasa.tar imvasa #基于容器导出的tar构建镜像

3.导入后查看镜像,已经成功导入并可以使用了

[root@vasa2redhat8 ~]# docker images
REPOSITORY             TAG       IMAGE ID       CREATED          SIZE
imvasa                 latest    0267fe7acea4   10 minutes ago   2.81GB
huyan/vasa_container   latest    b06f57c11253   18 hours ago     2.79GB
<none>                 <none>    6d514eff6d5d   18 hours ago     2.79GB
centos                 latest    300e315adb2f   4 months ago     209MB

常见问题

1.本地镜像push失败

image.png

公司禁止docker hub仓库导致,可以使用自建仓库

2.容器内没有service命令

缺少必要依赖包导致,安装即可

yum install initscripts

3.容器内一些命令无法执行如systemctl

可能是权限不足导致,

image.png

使用特权参数启动

dockerun --privileged -itd --name vasa2

4.docker 安装失败

可能是旧版本导致,先卸载旧版本

yum remove docker
yum install docker-ce docker-ce-cli containerd.io