docker创建ubuntu16.04容器(上)

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

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

 

docker使用命令回顾:
镜像
docker image ls
docker images  查看顶层镜像
docker images -a  查看所有层镜像
docker pull 镜像名  	#docker仓库,dockerhub
docker push 镜像名    #把本地的镜像推送到 dockerhub仓库
docker search 镜像名
docker rmi  删除镜像
docker version #查看docker版本,查看到server 和client两个端
systemctl start docker   #启动docker
docker save  镜像名  >  /data/centos.tar.gz  #导出镜像
docker load  <  /data/centos.tar.gz  #导入镜像    
docker run  镜像名  #运行镜像文件,产生一个容器实例
 
 
容器
停止重启docker守护进程
systemctl stop docker
systemctl restart docker

docker start 容器id 
docker stop 容器id
docker exec -it   容器id或名称 /bin/bash #进入正在运行的容器
	-i 交互式操作
	-t  开启一个终端
exit 退出容器
 
docker run 镜像名 #创建容器实例
docker rm  容器id  #删除容器记录,必须提前docker stop 容器id ,只能杀死已经停止的容器
docker ps  #查看容器正在运行记录
docker ps -aq  #显示所有容器记录的id号
	-a  显示所有容器记录
	-q	 显示容器id
	
docker rm  `docker ps -aq`  #一次性删除所有容器记录
 
docker container ls  #查看容器正在运行记录
docker commit  容器id记录  #提交这个容器,创建一个新的镜像
docker logs  #查看容器运行日志 
	-f   #不间断打印容器日志
	
docker port   #查看容器的端口映射关系(外部访问到容器内的端口)
docker run -d  centos  -P  
-d 后台运行
-P   随机映射端口  
-p  9000(宿主机):5000(容器内) 
--name   给创建的容器记录,添加别名

#将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下
docker cp /www/runoob 96f7f14e99ab:/www/ 
#将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中
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

放行端口

firewall-cmd --zone=public --add-port=10023/tcp --permanent && \
firewall-cmd --zone=public --add-port=10081/tcp --permanent && \
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

如果更新失败:

service docker restart
或
systemctl restart  docker

安装 vim编辑器

apt-get install vim

配置 apt-get 更新源

cd /etc/apt/
mkdir sources.bak
mv sources.list sources.bak/
vim sources.list
apt-get update

安装 net-tools

apt-get install net-tools

查看网络测试

ifconfig

安装防火墙 ufw

apt-get install ufw

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

apt-get install openssh-server
/etc/init.d/ssh start
/etc/init.d/ssh status
ssh-keygen -t rsa

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

passwd root

查看容器 ubuntu16.04 版本信息

cat /etc/issue
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 

报错:

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

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值