欢迎光临散文网 会员登陆 & 注册

Docker镜像容器安装与使用

2023-02-28 10:17 作者:伊那濑Inalai  | 我要投稿


软件介绍:

https://baike.baidu.com/item/Docker/13344470?fr=aladdin

使用场景:

  1. 线上正式环境是内网,且无法连接外网时,linux安装python缺少依赖,导致脚本无法正常运行。

  2. 需要将各种软件服务区分开,可以将软件单独放在不同的容器里进行运行,具体可以运行哪些软件,自行了解。

  3. 他人分享的docker镜像,部署到自己的云服务器上运行。


因为最近用到了这个,感觉是比较实用的,网上搜了很多问题才弄好的,写个东西,总结一下,只是自己摸索的操作过程。



一、安装

docker先装在windows上运行,做好镜像后再部署到linux上运行就行。

docker官网下载地址:https://www.docker.com/products/docker-desktop/

1.    需要注意的是要先打开windows的两个功能,进入方法:

控制面板——程序——启用或关闭windows功能


1.1    开启Hyper-V

开启Hyper-V

1.2    开启适用于Linux的Windows子系统

开启适用于Linux的Windows子系统

2.    直接运行从官网下载的安装进行运行

提示:docker默认安装在C盘,请不要随意移动docker软件目录的位置,可能导致报错,无法正常使用。

安装完成后,弹出提示缺失WSL 2,可以自行点击图上链接进行安装,或者点击下面链接直接下载。

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

安装完后提示缺失WSL 2,请自行下载安装

3.    安装完成后启动软件,修改一下配置,将镜像安装移到其他盘进行,不然C盘很容易爆炸。

软件需要登录使用,点击这里注册账号登录
登录完成后,点击设置
关掉使用WSL 2
修改这里目录(填需要安装镜像容器的目录),上面是容器配置,自行搜索了解,可以不更改
正常启动后,右下角小鲸鱼会是绿色,其他颜色都是不正常的

这样操作完后,安装就完成了,是不是很简单。

二、拉取镜像,并配置容器

第二节需要做的操作就有点多了,不过也不难(请先看下面1.5的提示,配置镜像源)

1.    拉取镜像hello-world

1.1    Win+R运行cmd,输入docker

输入docker,看到输出以下内容就是正常了


1.2    输入docker pull hello-world,拉取一个名叫hello-world的镜像

输入docker pull hello-world,看到输出以下内容就是正常了

1.3    拉取镜像成功后,docker软件上回看到名叫hello-world的镜像,真是万物从hello world起了。

拉取hello-world镜像成功后显示

1.4    真正要用的不是hello-world这个镜像,只是用来验证软件是否正常安装,将hello-world换成centos(或者ubuntu),再试一下这个命令。

我这里是之前安装过了,所以提示这个,如果拉取hello-world镜像没问题,这个centos镜像也不会有问题
成功后可以看到centos的镜像


1.5    提示:如果拉取镜像,下载失败,或者无法正常下载,请配置一下docker镜像源

打开设置,加上阿里云镜像源

阿里云的镜像源需要登录阿里云官网(https://account.aliyun.com/login/login.htm),登录之后就可以看到下图。

这里使用的是windows版本的,所以只看windows的即可

2.    运行容器

2.1    找到镜像页面,点击运行镜像则自动会生成一个对应镜像的容器

点击▶运行镜像
生成了hello-world的容器

2.2    选择centos的镜像容器进行运行

点击▶启动容器
点击上图的容器名称,可以进入容器命令行操作(需要简单的linux基础)

运行容器也可以使用命令进行,下面命令会运行一个新的centos镜像的容器


3.    打包镜像

一般在容器的linux中安装自己需要的服务或软件后,就可以将容器打包成镜像,此时需要在windows命令行操作

my_container是容器名,替换成你想打包的容器

my_image是镜像名,可自己定义

将容器打包成镜像

将容器打包成镜像后,镜像会存放在运行docker commit时的目录,如上图,打包的镜像存放在C:\Users\admin目录下。

三、部署

  1.     在服务器上安装docker服务

没有网络环境情况下,还是通过上传rmp包濑进行安装

docker下载地址:https://download.docker.com/linux/static/stable/

选择自己需要的版本,ce版本是社区版本(免费),ee版本是商业版本(付费)。

下载完后才能后上传到服务器上进行解压


1.1    解压完成后,二进制文件移动到可执行文件上的目录路径


1.2    进入/etc/systemd/system/


1.3    新建一个名为docker.service的文件,这里直接使用vi命令创建,然后将蓝色字体粘贴到文件中保存

[Unit]

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 --selinux-enabled=false

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


1.4    给docker.service文件添加权限


1.5    重新加载配置文件(每次有修改docker.service文件时都要重新加载下)


1.6    测试docker服务是否正常安装

测试docker服务安装是否成功



2.     将之前自己打包的镜像文件上传到服务器上,然后使用docker运行镜像生成容器。

找到上传到服务器镜像文件,使用docker命令运行镜像

modelrun_py是镜像名

awesome_hofstadter是容器名,可自定义


成功运行后,可以使用docker ps 查看容器运行状况

docker ps 查看容器运行状况


2.1    如果需要使用容器内程序与宿主机进行服务交互,需要设置端口映射,为了能够方便容器与宿主机进行文件操作,可以进行目录挂载,可使用如下命令进行启动镜像

使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data


2.2    进入容器以及退出容器且不关闭容器,保持后台运行

进入容器,此命令需要连接到正在运行中的容器,如果容器未正在运行,可运行后再试

2faeb0e93f2f是容器id,根据自己本地环境修改

docker attach 后面接容器id,就可以进入容器,成功进入后可看到linux主机名和目录发生了变化

退出容器且不关闭容器,保持容器后台运行

按下键盘ctrl + P + Q



2.3    也可以使用docker exec命令,

-it后面接容器id

使用exit进行退出

可以看到退出容器后,容器还在运行

如果对你有所帮助,会让我感觉到快乐,使用遇到问题,可以留下评论,也可私信。


Docker镜像容器安装与使用的评论 (共 条)

分享到微博请遵守国家法律