docker学习-拉取镜像、创建容器、封装镜像

1.安装docker环境

我是基于Ubuntu虚拟机安装docker的,但是第一步就先安装了curl命令

apt-get purge libcurl4 apt-get install curl curl 

1.1准备好curl以后,使用官方安装脚本开始安装docker啦

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 

1.2提示:安装过程可能会慢一些,等一下就好。安装完成之后,输入

docker --version 

查看docker的版本信息
1.3Docker镜像加速
因为默认是从DockerHub上拉取镜像,所以速度比较慢。这里可以配置镜像加速器。当配置某一个加速器地址之后,若发现拉取不到镜像,请切换到另一个加速器地址。国内各大云服务商均提供了 Docker 镜像加速服务,建议根据运行 Docker 的云平台选择对应的镜像加速服务。
Ubuntu16.04+、Debian8+、CentOS7

对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):
国内加速服务器:

  1. 科大镜像:https://docker.mirrors.ustc.edu.cn/
  2. 网易:https://hub-mirror.c.163.com/

    加速器决定着拉取镜像的速度
{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn/"]} systemctl daemon-reload systemctl restart docker 

检查加速器是否生效

检查加速器是否生效配置加速器之后,如果拉取镜像仍然十分缓慢,请手动检查加速器配置是否生效,在命令行执行 docker info,如果从结果中看到了如下内容,说明配置成功。

#docker info ..... Registry Mirrors: https://reg-mirror.qiniu.com 

2.拉取镜像,运行容器

2.1 拉取ubuntu的镜像,运行hello world
会去检查本地是否有ubuntu的镜像,没有的话会去docker hub上拉取镜像;
建立交互的容器

#先拉取镜像 docker pull ubuntu/... docker run ubuntu:15.10 /bin/echo "Hello world" docker -itd --name ubuntu-test ubuntu /bin/bash 
  • /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
  • -d 默认不会进入容器,在后台运行
  • -name 给容器起一个名字
    2.2运行/暂停容器
docker ps -a docker stop #id docker start #id 
  1. 查看容器运行情况
  2. 停止容器
  3. 运行容器

注意:可以在运行容器的时候指定容器的网段和IP地址,视情况而定

https://www.cnblogs.com/brock0624/p/9795208.html 

2.3进入/退出容器

docker attach 7d6 docker exec -it 7d6 /bin/bash #推荐使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。 

3.导出和导入容器

docker export 1e560fca3906 > ubuntu.tar 

4.将容器封装成镜像

Tips:这里涉及到要有requirements.txt

https://blog.csdn.net/baidu_19473529/article/details/104014263 

如何为项目生成一个隔离环境

https://www.diandian100.cn/c9c15d88.html https://www.jianshu.com/p/5e8884155bf0 https://www.cnblogs.com/gaowengang/p/7750496.html https://www.cnblogs.com/hszstudypy/p/11511228.html 该博主大佬文章值得研究 
  1. 自己基于命令生成隔离环境测试

在这里插入图片描述在这里插入图片描述
3. 退出隔离环境直接输入 deactivate 即可
4. 如果要创建一个Python3的虚拟环境,可以明确指定Python3。
在这里插入图片描述

virtualenv -p python3 --no-site-packages pve3 

实验记录

  1. 目前在ubuntu的环境当中
  2. 代码在这个目录下

在这里插入图片描述
在这里插入图片描述
问题:
了解Docker网络分配,因为每次进去容器的ip会变化,代码里的IP和实际IP不匹配,导致访问失败。
在这里插入图片描述
Docker的网络通信机制:

  1. 当Docker启动的时候,会自动在宿主机上创建以恶搞虚拟网桥,实际上是bridge,可以理解是软件交换机。
  2. 但是当容器过多的话,会对网桥造成访问压力

在这里插入图片描述
在这里插入图片描述

docker inspect 查看启动容器的相关信息,比如IP 

在一个容器内去访问另一个容器:
在这里插入图片描述

-v共享文件操作链接

详细讲解了共享文件的命令行

https://blog.csdn.net/magerguo/article/details/72514813?utm_term=docker%E6%8A%8A%E7%9B%AE%E5%BD%95%E6%98%A0%E5%B0%84%E5%88%B0%E6%9C%AC%E5%9C%B0&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-0-72514813&spm=3001.4430 

阮一峰大佬博客

http://www.ruanyifeng.com/blog/2018/02/docker-wordpress-tutorial.html 

一个python项目部署到docker的全过程:

 https://blog.csdn.net/u013282737/article/details/85233408?utm_term=docker%E5%AE%B9%E5%99%A8%E8%BF%90%E8%A1%8Cpython%E6%96%87%E4%BB%B6&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-3-85233408&spm=3001.4430 系统学习:里面有Docker的持续集成 之前实习也接触过 https://www.cnblogs.com/zhizihuakai/p/11518897.html 

原文链接:https://blog.csdn.net/qq_37119462/article/details/115219407?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168994567416800192286954%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168994567416800192286954&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-10-115219407-null-null.268%5Ev1%5Ekoosearch&utm_term=docker%E3%80%81wordpress%E3%80%81wordpress%E5%BB%BA%E7%AB%99%E3%80%81wordpress%E4%B8%BB%E9%A2%98%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%81

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享