代码编织梦想

ubuntu:16.04下docker 配置anaconda python运行环境、远程ssh连接全解——完美避开docker容器配置的神坑

其实docker容器本身就是一个linux环境的系统,然后用户配置运行环境在里面以供在任何机器上都很方便的使用。

1. Linux下安装docker
首先输入su,进入root模式,然后输入apt-get install docker,出现如下所示的页面则完成了docker的安装。
命令如下:

su
apt-get install docker

具体的执行结果页面如下所示:

sunstrong@ubuntu:~$ su
Password: 
root@ubuntu:/home/sunstrong# apt-get install docker
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  docker
0 upgraded, 1 newly installed, 0 to remove and 30 not upgraded.
Need to get 12.2 kB of archives.
After this operation, 65.5 kB of additional disk space will be used.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial/universe amd64 docker amd64 1.5-1 [12.2 kB]
Fetched 12.2 kB in 0s (129 kB/s)  
Selecting previously unselected package docker.
(Reading database ... 221651 files and directories currently installed.)
Preparing to unpack .../docker_1.5-1_amd64.deb ...
Unpacking docker (1.5-1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up docker (1.5-1) ...

2. 创建一个纯净的ubuntu镜像,并启动该镜像作为容器,具体的命令如下:

docker pull ubuntu:16.04

然后输入:

docker images

具体的执行结果页面如下所示:

root@ubuntu:/home/sunstrong# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
anaconda             3.7                 ad36c71edc68        2 hours ago         4.6GB
sunstrong/anaconda   3.7                 ad36c71edc68        2 hours ago         4.6GB
ubuntu               16.04               9499db781771        2 weeks ago         131MB
pytorch/pytorch      latest              f8a1d10ae3d7        6 weeks ago         4.65GB

然后是启动该镜像作为一个新的容器,启动容器,并安装ssh,vim,anaconda,wget等。
第一步:启动镜像,命令如下:

docker run -itd --name ubuntu-test ubuntu:16.04 /bin/bash

其中ubuntu-test为容器名,ubuntu:16.04为镜像名
运行结果如下:

root@ubuntu:/home/sunstrong# docker run -itd --name ubuntu-test ubuntu:16.04 /bin/bash
980d1306032ec1e2ee7c6a919d8d87062ca6aeb665e8fd7daf9c4e15bb17c43d

查看正在运行的容器,命令如下:

docker ps -a

这一步运行结果如下:

root@ubuntu:/home/sunstrong# docker ps -a
CONTAINER ID        IMAGE                    COMMAND             CREATED             STATUS              PORTS                         NAMES
980d1306032e        ubuntu:16.04             "/bin/bash"         2 minutes ago       Up 2 minutes                                      ubuntu-test
586f3a03b62f        sunstrong/anaconda:3.7   "/bin/bash"         2 hours ago         Up 2 hours          192.168.80.129:8080->22/tcp   anaconda37

然后进入容器,命令如下:

docker exec -it 980d1306032e /bin/bash

这一步运行结果如下:

root@980d1306032e:/# 

其中root代表容器内部直接是由root权限的,下面开始安装一些必备软件
3.在容器内安装软件
安装wget,ssh,anaconda,vim等,输入命令如下:

apt-get update
apt-get install wget
apt-get install openssh-server
apt-get install vim

其中ssh服务默认非root所以需要改一下文件参数,具体的步骤如下:

vim /etc/ssh/sshd_config

输入i,进行插入,然后找到PermitRootLogin prohibit-password这一行,输入#注释掉,然后添加一行PermitRootLogin yes,最终的文件修改结果如下所示:

#PermitRootLogin prohibit-password 
PermitRootLogin yes

然后按esc,再输入:wq,保存该文件并退出

安装Anaconda,命令如下:

wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh

具体的执行结果如下所示:

root@980d1306032e:~# wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
--2020-12-11 07:49:10--  https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
Resolving repo.anaconda.com (repo.anaconda.com)... 104.16.131.3, 104.16.130.3, 2606:4700::6810:8303, ...
Connecting to repo.anaconda.com (repo.anaconda.com)|104.16.131.3|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 530308481 (506M) [application/x-sh]
Saving to: 'Anaconda3-2019.10-Linux-x86_64.sh'
Anaconda3-2019.10-Linux-x86_64 100%[==================================================>] 505.74M  4.43MB/s    in 1m 49s  
2020-12-11 07:50:59 (4.63 MB/s) - 'Anaconda3-2019.10-Linux-x86_64.sh' saved [530308481/530308481]

然后输入ls

cd ~
ls

结果如下:

root@980d1306032e:~# ls 
Anaconda3-2019.10-Linux-x86_64.sh

再输入:

bash Anaconda3-2019.10-Linux-x86_64.sh

此后一直enter就行,然后输入yes,默认原始设置
最后修改环境变量,输入命令如下:

echo 'export PATH="~/anaconda3/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

输入conda list就会发现安装成功了。
4.将容器映射到本地端口
先将容器制作成新镜像,具体的命令如下:

docker commit 980d1306032e new_ubuntu

其中980d1306032e为镜像id,然后再启动容器并映射到本地端口,由于docker容器中ubuntu已经默认开启22号端口,所以只需要将22号端口映射到本地的一个端口上就行,**这里的ip地址一定要写全(**也就是本地机器的ip,大部分教程都没写全,如果不知道可以用ifconfig进行查询):

docker run -itd --name sunstrong_unbuntu --privileged=true -p 192.168.80.129:80:22 new_ubuntu /bin/bash

具体的运行结果如下:

root@ubuntu:~# docker run -itd --name sunstrong_unbuntu --privileged=true -p 192.168.80.129:80:22 new_ubuntu /bin/bash
a2ef02e82e6dd65305dd6eb73339f7ed68afd5add1b33e1e4bc0c332ba6251e1
root@ubuntu:~# 

远程登录注意:
如果需要登录,一定要进入docker容器,并开启ssh服务,具体的命令为:service ssh start,否则会一直显示连接失败

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/SunStrongInChina/article/details/111034479

centos常用命令-爱代码爱编程

1、pwd 显示当前目录位置 $ pwd 2、cd 切换目录 cd …/ 退回上层目录 cd …/…/ 连续退两个目录,退回上两层 cd - 退回上一次的目录(短横线) cd 直接切换到家目录 显示为:~ [yh@centos-test209 /]$ cd [yh@centos-test209 ~]$ 3、hostname 查看机器名称(

centos网络无法启动问题----重新设置静态IP地址-爱代码爱编程

一、网络无法启动问题----重新设置静态IP地址 1、查看当前网卡名称 ifconfig 2、修改网卡配置文件 vim /etc/sysconfig/network-scripts\ifcfg-ens33 3、修改配置文件 TYPE=“Ethernet” PROXY_METHOD=“none” BROWSER_ONLY=“no” BOOTP

Linux如何安装VM-Tools???-爱代码爱编程

 Linux 安装 VM-Tools 1.在VM主界面选择安装VM-Tools工具 2. 在虚拟机内会自动挂载VMware Tools安装光盘 (如果未出现则手动挂载安装盘) 手动挂载教程(若自动挂载了则跳过此步){ (1)打开Linux Shell(终端),并进入根目录下的mnt目录   cd /mnt (2)在mnt目录下创建一个目录cd

debian基础命令-爱代码爱编程

2019年10月22日 20:48 1、常用查看命令 查看内核:uname -a 查看硬盘的分区区:fdisk -l 2、关于进程命令 查看当前有哪些进程: ps -aux 中止一个进程: kill 进程号 强制中止一个进程: kill -9 进程号 查看当前进程的实时状况: top 3、用户管理 Useradd 创建一个新的用户 G

丰富Safari 扩展,释放Safari 浏览器更多潜力-爱代码爱编程

Safar 浏览器扩展可以为你的浏览器带来超凡能力:更好地拦截广告和网站跟踪、发现心仪商品的折扣、保存网页随时阅读,功能不胜枚举。 macos Big Sur 让开发者能够更方便地将他们的扩展转移到 Mac 上,为你带来更丰富的选择。同时,你还可以決定在哪些网站上使用扩展,以及使用多长时间。 添加扩展非常简单:打开《Safari 浏览器》的偏好设置窗

摸鱼也要有技巧!3个 linux 命令行工具让你假装很忙....-爱代码爱编程

上班摸鱼,怕被抓? 别担心,摸鱼也要有技巧,这 3个 linux 命令行工具可以让你假装很忙!   Genact 我们要看的第一个工具是 Genact。 Genact 只是简单地回放你选择的一个序列,在你出去喝茶休息的时候慢慢地、无限期地「编译」你的代码。 它播放的序列由你决定,但默认情况下它包括一个加密货币挖掘模拟器、composer p

ubuntu docker安装并拉取oracle11g镜像-爱代码爱编程

1:ubuntu docker安装 curl -sSL http://get.docker.com | bash -s docker --mirror Aliyun ** 2:docker拉取Oracle11g镜像并配置 **2.1下载oracle11g的docker镜像 sudo docker pull registry.cn-hangzho

Ubuntu18.04利用docker安装mysql5.7.31并制作镜像tar文件-爱代码爱编程

Ubuntu18.04利用docker安装mysql5.7.31并制作镜像tar文件 说明: 如已有mysql镜像文件可以直接看此文档 第三部分 第一部分: 利用docker安装mysql5.7.31 1 : 查找mysql sudo docker search mysql 2 : 获取mysql镜像 sudo docker pull

kubernetes安装(minikube)-爱代码爱编程

文|MESeraph 01 | 关闭secure boot 进入BIOS关闭secure boot。(为了VM能正常启动) 02 | 安装 安装kubectl curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/am

Docker pull加速-爱代码爱编程

打开配置文件cp@ubuntu:~$ sudo vi /etc/docker/daemon.json 编写配置文件{ "registry-mirrors": ["<your accelerate address>"] } 加速地址有: https://registry.docker-cn.com http://hub-mirro

docker 查看容器日志详解-爱代码爱编程

收集一下docker对容器日志相关的操作命令 通过docker logs命令可以查看容器的日志。 docker 启动后容器日志位置 /var/lib/docker/containers/容器ID/容器ID-json.log 命令格式: $ docker logs [OPTIONS] CONTAINER Options: --details

docker-概念-安装-常用命令-ssh-nvida-爱代码爱编程

基础 Docker 是一个开源的应用容器引擎。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 版本 CE(Community Edition: