Centos上第一次使用docker的记录

记录自己第一次使用docker的步骤

背景

在一次系统集成的情况下,需要把程序部署在docker中,方便日后阿里云平台上直接调用docker的AIP管理多个服务。这也是第一次使用docker,记录步骤可能比较杂乱,并且不会使用于所有的程序。主要是记录自己遇到的错误和解决方式。本人所用的环境是centos7.x

docker的下载安装与启动

在有网的情况下可以参见官方文档:https://docs.docker.com/engine/install/centos/

本人直接使用的本地资源安装,一共有如下几个包:
container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
containerd.io-1.2.13-3.2.el7.x86_64.rpm
docker-ce-19.03.12-3.el7.x86_64.rpm
docker-ce-cli-19.03.12-3.el7.x86_64.rpm
libsemanage-2.5-14.el7.x86_64.rpm
libsemanage-python-2.5-14.el7.x86_64.rpm
policycoreutils-2.5-34.el7.x86_64.rpm
policycoreutils-python-2.5-34.el7.x86_64.rpm
selinux-policy-3.13.1-266.el7_8.1.noarch.rpm
selinux-policy-targeted-3.13.1-266.el7_8.1.noarch.rpm
setools-libs-3.3.8-4.el7.x86_64.rpm

直接运行 yum install ./* 即可安装成功

安装成功后需要使用systemctl start docker来开启服务

镜像的制作

1.查询有哪些镜像是可以直接下载使用
$docker search [查找名称]
因为本人需要的是centos7.5版本,所以直接搜索的centos7.5,使用最新版本可以直接写centos
在这里插入图片描述
2.下载镜像
刚好有一个centos7.5带yum镜像的和我的要求很匹配,于是就下载了lanvv/cents7.5-yum这个镜像。
$docker pull lanvv/cents7.5-yum

3.查看拥有的镜像
这里截图是之后截的,因此不是下载下来的镜像了。
$docker images
在这里插入图片描述
4.运行选定的镜像
$docker run -dit --name [给镜像取的名称] [IMAGE ID] /bin/bash

5.查看运行的容器
$docker ps -a
在这里插入图片描述
6.进入容器
$docker exec -it [容器名称] /bin/bash
在这里插入图片描述
7.安装环境
因为我下的这个是最小系统,里面几乎啥都没用,所以需要根据自己的需求来安装东西,以下仅仅是我自己需要的环境的安装记录
boost库安装
yum install -y boost
yum install -y boost-devel
yum install -y boost-doc

vim安装
yum install -y -vim

locate命令安装
yum install -y mlocate

ifconfig等网络命令安装
yum install -y net_tools.x86_64

tcpdump安装
yum install -y tcpdump

g++安装(7.5的系统,yum安装默认就是4.8.5,也是我需要的版本)
yum install -y gcc
yum install -y gcc-c++

其余安装项的名称
zip, uzip, tar, make, cmake, java-1.8.0-openjdk*

8.宿主机和容器之间的拷贝
我主要用来部署程序使用的
$docker cp 宿主机文件路径 容器名称:拷贝到的容器路径
$docker cp 容器名称:拷贝到的容器路径 宿主机文件路径

9.测试程序是否可以正常启动

10.制作新的镜像
$docker commit -m ‘注释内容’ -a ‘制作人’ 容器的名称 镜像的名称
制作过程可能会有点慢(因为我是在虚拟机上)。
制作完成后可以使用docker images看到信息

11.导出镜像
$docker save -o tar包的名称 镜像的名称
导出的镜像都是一个.tar文件

12.载入镜像
$docker load < tar包的路径

13完成

补充

按照以上步骤制作的镜像有很多问题的。。。嘿嘿,我不提前说也是想让大家都去踩以下坑。这样记得更牢固。

以下为问题:

1.为何容器启动后,程序无法自我启动,就算是在容器中做了开机启动?
原理还没来得及看,不过只需要在容器的根目录下创建start.sh脚本文件,在里面写好需要启动的东西,启动容器的时候就自动启动程序了。记得chmod +x 加上可执行权限。网上说防止bash被关闭,需要在结尾加上/bin/bash
之后使用run 命令的时候最后指定运行这个脚本。如:docker run --restart=always -dit —name=test / start.sh

2.可能系统中无法输入以及输出中文字符
运行locale -a 看看是否有zh_CN.UTF-8的编码格式。
没有的话运行yum install -y kde-l10n-Chinese安装中文编码
centos6版本需要使用yum groupinstall chinese-support
没有安装glibc的还需要运行yum install -y glibc-common
安装完后运行localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8来定义字符集
此时再运行locale -a应该就有所需要的了
在这里插入图片描述
然后修改/ect/locale.conf文件
内容为:LANG=“zh_CN.UTF-8”
最后运行source /etc/locale.conf

以上步骤作为iso安装的系统中是可行的,单是在docker中还不够。在docker中,想要看到中文字符,需要在运行docker exec -it 容器名称 env LANG=zh_CN.UTF-8 /bin/bash

每次都加上环境变量参数也很麻烦,所以也可以写在dockerfile文件中。至于dockerfile文件如何写,之后再记录吧。。太累了。

# 1、下载rpm源文件 * rpm下载不了的文件可以到[rpm官方](http://rpm.pbone.net/)进行下载 # 2、执行rpm文件 * 1、以下的rpm文件是有依赖,需要安装顺序进行执行. * 2、执行policycoreutils-python-2.5-29.el7.x86_64.rpm发现报 错误:依赖检测失败: policycoreutils = 2.5-22.el7 被 policycoreutils-python-2.5-22.el7.x86_64 需要 去rpm官方网找了一个`policycoreutils-python-2.5-29.el7_6.1.x86_64.rpm`最新的安装包执行安装 * 3、python-kitchen-1.1.1-5.el7.noarch.rpm可以不需要安装 ``` rpm -ivh libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm rpm -ivh audit-libs-python-2.8.4-4.el7.x86_64.rpm rpm -ivh libcgroup-0.41-20.el7.x86_64.rpm rpm -ivh libsemanage-python-2.5-14.el7.x86_64.rpm rpm -ivh checkpolicy-2.5-8.el7.x86_64.rpm rpm -ivh python-IPy-0.75-6.el7.noarch.rpm rpm -ivh setools-libs-3.3.8-4.el7.x86_64.rpm rpm -ivh policycoreutils-python-2.5-29.el7_6.1.x86_64.rpm rpm -ivh container-selinux-2.74-1.el7.noarch.rpm rpm -ivh libseccomp-2.3.1-3.el7.x86_64.rpm rpm -ivh containerd.io-1.2.0-3.el7.x86_64.rpm rpm -ivh docker-ce-cli-18.09.0-3.el7.x86_64.rpm rpm -ivh docker-ce-18.09.0-3.el7.x86_64.rpm ``` # 3、启动docker ``` systemctl daemon-reload && systemctl restart docker ``` # 4、设置开机启动 * Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service. ``` systemctl enable docker.service ``` # 5、验证docker ``` docker version ``` # 参考文章 * [CentOS 7.5离线安装Docker 18.09.3软件](https://jingyan.baidu.com/article/fb48e8becf31a16e632e145f.html)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值