docker创建ubuntu16.04容器(上)

2023-05-16

容器三大基本概念,docker整个生命周期就是这三个概念

  • 镜像 image   Docker镜像就是一个只读的模板。镜像可以用来创建Docker容器。Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。
  • 容器 container
  • 仓库 repository  存放镜像文件的地方,我可以去公网去,下载镜像

 


   
   
  1. docker使用命令回顾:
  2. 镜像
  3. docker image ls
  4. docker images 查看顶层镜像
  5. docker images -a 查看所有层镜像
  6. docker pull 镜像名 #docker仓库,dockerhub
  7. docker push 镜像名 #把本地的镜像推送到 dockerhub仓库
  8. docker search 镜像名
  9. docker rmi 删除镜像
  10. docker version #查看docker版本,查看到server 和client两个端
  11. systemctl start docker #启动docker
  12. docker save 镜像名 > /data/centos.tar.gz #导出镜像
  13. docker load < /data/centos.tar.gz #导入镜像
  14. docker run 镜像名 #运行镜像文件,产生一个容器实例
  15. 容器
  16. 停止重启docker守护进程
  17. systemctl stop docker
  18. systemctl restart docker
  19. docker start 容器 id
  20. docker stop 容器 id
  21. docker exec -it 容器 id或名称 /bin/bash #进入正在运行的容器
  22. -i 交互式操作
  23. -t 开启一个终端
  24. exit 退出容器
  25. docker run 镜像名 #创建容器实例
  26. docker rm 容器 id #删除容器记录,必须提前docker stop 容器id ,只能杀死已经停止的容器
  27. docker ps #查看容器正在运行记录
  28. docker ps -aq #显示所有容器记录的id号
  29. -a 显示所有容器记录
  30. -q 显示容器 id
  31. docker rm `docker ps -aq` #一次性删除所有容器记录
  32. docker container ls #查看容器正在运行记录
  33. docker commit 容器 id记录 #提交这个容器,创建一个新的镜像
  34. docker logs #查看容器运行日志
  35. -f #不间断打印容器日志
  36. docker port #查看容器的端口映射关系(外部访问到容器内的端口)
  37. docker run -d centos -P
  38. -d 后台运行
  39. -P 随机映射端口
  40. -p 9000(宿主机):5000(容器内)
  41. --name 给创建的容器记录,添加别名
  42. #将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下
  43. docker cp /www/runoob 96f7f14e99ab:/www/
  44. #将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中
  45. docker cp 96f7f14e99ab:/www /tmp/

注意:先停止再删除

docker rm 容器id  删除容器 

docker rmi 镜像id 删除镜像

创建容器的具体步骤:

1.创建容器前准备工作,先把宿主机系统防火墙起开,放通端口
可参考之前blog:Linux系统防火墙放行端口
此处是:

docker网络配置:https://blog.csdn.net/hetoto/article/details/99892743

查看系统防火墙状态

systemctl status firewalld

   
   

开启系统防火墙:

systemctl start firewalld

   
   

放行端口


   
   
  1. firewall-cmd --zone= public -- add-port= 10023/tcp --permanent && \
  2. firewall-cmd --zone= public -- add-port= 10081/tcp --permanent && \
  3. firewall-cmd --reload

查看放通的端口列表

firewall-cmd --list-port

   
   

如果要再关闭系统防火墙

systemctl stop firewalld

   
   

 

2.生成并启动一个容器:

docker run --name face_reg-d3 --gpus all -itd deeplearningenv/face-d3:latest --privileged -p 10023:22 -p 10081:80 -h face_reg-d3 -v /home/ubuntu/face_reg-d3_file:/home/face_reg_file
   
   
sudo docker run -it --name u16-d1 --privileged -p 10023:22 -p 10081:80 -h u16-docker-1 -v /home/ubuntu16/container/u1604-d-1:/home/u16-d1-ys ubuntu:16.04 /bin/bash
   
   
参数:说明:
-it终端运行方式,若用-d参数发现不行,故用此;功能实现交互式;
–name创建的容器名,方便启动、关闭、重启、删除容器等操作
–privileged加上之后容器内部权限更多,不会出现权限问题
-p 10022:23 -p 10081:80指定端口映射,可同时放通多个端口
-h u16-docker-1指定容器主机名
-v /home/ubuntu16/container/u1604-d-1:/home/u16-d1-ys宿主机目录映射到容器内部目录
**ubuntu:16.04 **本地ubuntu镜像版本
/bin/bash启动方式

-v 宿主目录:容器目录  将我们自己创建的目录挂载到容器的目录。只要在宿主机做修改即可,使用比较方便。

进入容器

docker exec -it u16-d1 /bin/bash
   
   

如果发现容器已经关掉,下面这条命令起开 

docker start u16-d1
   
   

再进入容器

docker exec -it u16-d1 /bin/bash
   
   

在容器内部操作

先初始化 apt-get

apt-get update
   
   

如果更新失败:


   
   
  1. service docker restart
  2. systemctl restart docker

安装 vim编辑器

apt-get install vim
   
   

配置 apt-get 更新源


   
   
  1. cd /etc/apt/
  2. mkdir sources.bak
  3. mv sources.list sources.bak/
  4. vim sources.list
  5. apt-get update

安装 net-tools

apt-get install net-tools
   
   

查看网络测试

ifconfig
   
   

安装防火墙 ufw

apt-get install ufw

   
   

安装 openssh-server,并启动ssh服务

apt-get install openssh-server

   
   

   
   
  1. /etc / init.d /ssh start
  2. /etc / init.d /ssh status
  3. ssh -keygen -t rsa

创建 ubuntu16.04 容器 root 用户密码

passwd root

   
   

查看容器 ubuntu16.04 版本信息


   
   
  1. cat /etc/issue
  2. cat /etc/lsb-release

使用xshell远程前,必须对容器配置/etc/ssh/sshd_config做修改

可参考blog:[ubuntu安装ssh及远程登录一系列问题](https://blog.csdn.net/frdevolcqzyxynjds/article/details/105282343)

修改配置文件 /etc/ssh/sshd_config

vim /etc/ssh/sshd_config

   
   

PermitRootLogin prohibit-password这一行注释掉,换成下面这行

PermitRootLogin yes

   
   

然后重启 ssh 服务

/etc/init.d/ssh restart

   
   

然后本地xshell远程
宿主机(云服务器公网或vmware虚拟机在局域网的) ip:10023
宿主机ip:映射的容器端口port

安装anaconda

方法1:

 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.3.1-Linux-x86_64.sh --no-check-certificate

   
   

方法2:宿主机内有anaconda的.sh文件,我将次文件cp到容器挂在宿主机的文件目录下,即/home/ubuntu16/container/u1604-d-1中,进入容器中在/home/u16-d1-ys中可以查看到,安装命令:

bash Anaconda3-5.3.1-Linux-x86_64.sh -p /home/anaconda 

   
   

报错:


   
   
  1. tar (child): lbzip2: Cannot exec: No such file or directory
  2. tar (child): Error is not recoverable: exiting now
  3. tar: Child returned status 2
  4. tar: Error is not recoverable: exiting now

解决方式很简单,即安装bzip2  (apt-get install bzip2)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker创建ubuntu16.04容器(上) 的相关文章

随机推荐

  • curl文件传输命令

    CURL curl transfer a URL curl 是一个利用URL语法在命令行下工作的文件传输工具 支持文件上传和下载 格式 curl options URLs URL xff1a 通过大括号指定多个url 示例 xff1a cu
  • RS-485信号解析

    这次来看看RS 485信号 使用绿联的USB转RS485模块 线用的颜色不对 xff0c 类型也不对 xff0c 实际使用中请用带屏蔽层的双绞线 示波器CH1是R xff08 B xff09 示波器CH2是R 43 xff08 A xff0
  • T t与T t = T()的区别

    主要的区别就是默认构造函数对内置类型的初始化上 如果没有T中没有定义构造函数 xff0c 则对于 T t xff0c 并不会对 t 中内置类型设置初始值 xff0c 是一个随机值 但对于 T t 61 T xff0c 对 t 中内置类型会设
  • Effective STL:杂记(一)

    1 避免使用vector lt bool gt vector lt bool gt 实际上并不能算是一个STL容器 xff0c 实际上也并不存储bool 因为一个对象要成为STL容器 xff0c 就必须满足C 43 43 标准的第23 1节
  • 限制长度双向链表的插入操作

    面试遇到的问题 xff0c 一开始面试官是问我有什么方案可以实现排行榜 xff0c 当时给出了两个方案 后面面试官又在我的其中一种方案上让我手写代码实现排序双线链表的插入 xff0c 根据score值插入 xff0c 并且链表长度限制在10
  • SYD8821 IIC模块使用说明

    SYD8821是具有全球领先低功耗 RX 2 4mA 64 94 5dBm灵敏度 xff0c TX 4 3mA 64 0dBm输出功率 的蓝牙低功耗SOC芯片 xff0c 在极低电流下实现了优异的射频性能 xff0c 搭配176kB SRA
  • Python下载文件时出现乱码的解决方法之一:Content-Encoding: gzip

    之前写过一个简单的爬虫程序 xff0c 这次想试着再写一个下载固定文件的爬虫程序 写完之后发现下载的文件 xff0c 有些是可以正常打开的 xff0c 而有些是提示了编码错误 xff0c 用wireshark抓包 xff0c 过滤出http
  • Python爬虫判断url链接的是下载文件还是html文件

    最近在写一个网络爬虫的代码 xff0c 提供命令行来下载文件或者是打印根域名下指定节点及深度的子节点 用的是urllib2库 xff0c 算是比较简单 xff0c 但是功能并没有很强大 说重点吧 xff0c 在实际爬网页的过程中 xff0c
  • recvmsg和sendmsg函数

    在unp第14章讲了这两个函数 xff0c 但是只是讲了两个数据结构及参数而已 xff0c 所以自己想根据介绍来重构udp回射的客户端程序 但是sendmsg和recvmsg都遇到了问题 xff0c 并且纠结了很久 xff0c 所以在此记录
  • STL中map的[]运算导致程序挂掉的问题

    在项目的开发中 xff0c 使用 设置map变量时 xff0c 出现了Segment Fault的问题 xff0c 使用GDB bt命令得到调用栈 xff08 中间部分被我去掉了 xff09 如下 xff1a 0 0x00000000008
  • 结构体的vector resize()与初始化

    转自 xff1a https www cnblogs com kongse qi p 6798873 html 序 xff1a 我们在使用vector的时候可以自定义里面的数据类型 例如这样 xff1a struct Edge int fr
  • new(p) T1(value) 的操作

    最近开始看 STL源码剖析 xff0c 看到空间配置器的时候 xff0c 发现这么一段代码 xff1a template lt class T1 class T2 gt inline void construct T1 p const T2
  • Protobuf 编码及序列化的记录

    工作中用到了protobuf xff0c 然后之前在面试的时候面试官就问了一个问题 xff0c 如果将int32类型的字段的值设置为0 xff0c 那还会将该值进行序列化吗 xff1f 当时是懵了的 xff0c 因为自己还没有研究这部分 当
  • STM32驱动lcd1602,并口8位 6800时序

    STM32驱动lcd1602 xff0c 并口8位 6800时序 一 LCD1602 xff08 3 3V硬件版本 xff09 简介 1 1 引脚 引脚 xff0c lcd1602采用标准接口 xff0c 6800时序8位并行数据传输 第
  • CAN总线详解

    1 简介 CAN是控制器局域网络 Controller Area Network CAN 的简称 xff0c 是一种能够实现分布式实时控制的串行通信网络 优点 xff1a 传输速度最高到1Mbps xff0c 通信距离最远到10km xff
  • VS C#工程三【使用配置文件保存应用程序里的配置数据】[Resources找不到][打印log到VS窗口]【安全从工程删除图片】[发布exe并附带动态链接库dll]

    SYD8801是一款低功耗高性能蓝牙低功耗SOC xff0c 集成了高性能2 4GHz射频收发机 32位ARM Cortex M0处理器 128kB Flash存储器 以及丰富的数字接口 SYD8801片上集成了Balun无需阻抗匹配网络
  • 对Socket CAN的理解(2)——【Socket的原理及使用】

    转载请注明出处 xff1a http blog csdn net Righthek 谢谢 xff01 为了能够对Socket CAN的深入理解 xff0c 我们需要了解Socket的机制 Socket的中文翻译为 插座 xff0c 在计算机
  • 对Socket CAN的理解(3)——【Socket CAN发送数据流程】

    转载请注明出处 xff1a http blog csdn net Righthek 谢谢 xff01 对于本文 xff0c 我们将从用户层使用Socket CAN进行数据发送时 xff0c 数据从用户空间到底层驱动的整个通信流程 xff0c
  • 对Socket CAN的理解(4)——【Socket CAN接收数据流程】

    转载请注明出处 xff1a http blog csdn net Righthek 谢谢 xff01 现在我们来分析一下CAN总线的接收数据流程 xff0c 对于网络设备 xff0c 数据接收大体上采用中断 43 NAPI机制进行数据的接收
  • docker创建ubuntu16.04容器(上)

    容器三大基本概念 xff0c docker整个生命周期就是这三个概念 镜像 image Docker镜像就是一个只读的模板 镜像可以用来创建Docker容器 Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像 xff0c 用户甚