docker的简单学习

Docker学习笔记

一、docker的简单介绍

什么是docker

基于 Go 语言开发的一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

docker基本要素
  • Docker_Host:

    • 安装Docker的主机

  • Docker Daemon:

    • 运行在Docker主机上的Docker后台进程

  • Client:

    • 操作Docker主机的客户端(命令行、UI等)

  • Registry:

    • 镜像仓库

    • Docker Hub

  • Images:

    • 镜像,带环境打包好的程序,可以直接启动运行

  • Containers:

    • 容器,由镜像启动起来正在运行中的程序

docker解决的问题
  • 开发、生产、测试环境不一致,开发环境下可用的服务挪到生产上不可用。

  • 不同环境之间迁移成本太高,没有统一的软件部署封装标准及封装环境。

  • 对于分布式软件持续集成(测试、打包、发布、部署、管理)周期很长,难以自动化、工程化。

  • 面临瞬时用户流量增大的场景,很难实现分布式应用服务实例的快速部署。

二、docker的安装

Linux下离线安装Docker

1、基础环境

1、操作系统:CentOS 7.3

2、Docker版本:18.06.1 官方下载地址(打不开可能很慢)

3、百度云Docker 18.06.1地址:百度网盘 请输入提取码 密码:dvvh

4、官方参考文档:Install Docker Engine from binaries | Docker Docs

2、Docker安装

1、解压

tar -xvf docker-18.06.1-ce.tgz

2、将解压出来的docker文件内容移动到 /usr/bin/ 目录下

mv docker/* /usr/bin/

3、将docker注册为service

vim /etc/systemd/system/docker.service

将下列配置加到docker.service中并保存

[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
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

4、启动

chmod +x /etc/systemd/system/docker.service #添加文件权限并启动docker
systemctl daemon-reload #重载unit配置文件
systemctl start docker #启动Docker
systemctl enable docker.service #设置开机自启

5、验证

systemctl status docker #查看Docker状态
docker -v #查看Docker版本

三、docker的操作命令

1、容器生命周期管理命令

1.1 run

创建一个新的容器。

# 使用docker镜像nginx:latest以后台模式启动一个容器,
# 并将容器命名为mynginx。  
$ docker run --name mynginx -d nginx:latest  
​
# 使用镜像 nginx:latest,以后台模式启动一个容器,
# 将容器的 80 端口映射到主机的 80 端口,
# 主机的目录 /data 映射到容器的 /data。  
$ docker run -p 80:80 -v /data:/data -d nginx:latest  
​
# 使用镜像nginx:latest以交互模式启动一个容器,
# 在容器内执行/bin/bash命令。  
$ docker run -it nginx:latest /bin/bash  
1.2 start/stop/restart
  • docker start : 启动一个或多个已经被停止的容器。

  • docker stop : 停止一个运行中的容器。

  • docker restart : 重启容器。

# 启动已被停止的容器mynginx  
$ docker start mynginx  
​
# 停止运行中的容器mynginx  
$ docker stop mynginx  
​
# 重启容器mynginx  
$ docker restart mynginx  
1.3 kill

杀掉一个运行中的容器。可选参数:

  • -s : 发送什么信号到容器,默认 KILL

# 根据容器名字杀掉容器  
$ docker kill tomcat7  
​
# 根据容器ID杀掉容器  
$ docker kill 65d4a94f7a39  
1.4 rm

删除一个或多个容器。

# 强制删除容器 db01、db02:  
$ docker rm -f db01 db02  
​
# 删除容器 nginx01, 并删除容器挂载的数据卷:  
$ docker rm -v nginx01  
​
# 删除所有已经停止的容器:  
$ docker rm $(docker ps -a -q)  
1.5 creat
对于机器学习任务,Docker可以提供一个灵活、可移植的环境,使得开发和部署变得更加简单。下面是一些使用Docker进行机器学习的常见步骤: 1. 定义Docker镜像:创建一个Dockerfile,其中包含机器学习所需的依赖和环境配置。例如,可以选择一个基础Python镜像,并添加所需的机器学习库和工具。 2. 构建Docker镜像:使用Docker命令构建镜像,例如:`docker build -t ml-image .`。这将基于Dockerfile构建一个名为ml-image的镜像。 3. 准备数据和代码:将机器学习代码和数据放入一个目录中,以便在Docker容器中访问。可以使用数据卷或者复制文件到容器内部。 4. 运行Docker容器:使用Docker命令运行容器,例如:`docker run -it --name ml-container ml-image`。这将启动一个交互式容器,并为之命名为ml-container。 5. 在容器中进行机器学习:在容器内部,可以执行机器学习任务。可以使用命令行工具或者Jupyter Notebook等环境进行开发和实验。 6. 保存模型和结果:如果有需要,可以将训练好的模型和实验结果保存到容器内部或者挂载的数据卷中,以便后续使用。 7. 停止和清理容器:在完成机器学习任务后,使用Docker命令停止和删除容器,例如:`docker stop ml-container`和`docker rm ml-container`。 使用Docker可以有效地管理机器学习环境,确保开发和部署的一致性,并且提供更好的可移植性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值