安装DOCKER
入门教程 https://www.runoob.com/docker/ubuntu-docker-install.html
盛科编译环境安装过程:
1.安装虚拟机
创建虚拟机为ubuntu-16.04
2.安装docker
一键安装
curl -sSL https://get.daocloud.io/docker | sh
手动安装
将文件containerd.io_1.2.6-3_amd64.deb,docker-ce_18.09.8_3-0_ubuntu-xenial_amd64.deb,docker-ce-cli_18.09.8_3-0_ubuntu-xenial_amd64.deb拷贝至预定目录,如/home/ubuntu/docker,执行以下命令:
-
ubuntu@ubuntu:~$ sudo apt-get remove docker docker-engine docket.io containerd runc //删除旧版docker
-
ubuntu@ubuntu:~$ sudo apt-get update
-
ubuntu@ubuntu:~$ sudo dpkg -i /home/ubuntu/docker/containerd.io_1.2.6-3_amd64.deb
-
ubuntu@ubuntu:~$ sudo dpkg -i /home/ubuntu/docker/docker-ce_18.09.8_3-0_ubuntu-xenial_amd64.deb
-
ubuntu@ubuntu:~$ sudo dpkg -i /home/ubuntu/docker/docker-ce-cli_18.09.8_3-0_ubuntu-xenial_amd64.deb
以上两种安装方式,安装完成后,使用 ubuntu@ubuntu:~$sudo docker run hello-world 检测是否安装成功,打印出以下指令,及为安装成功
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
........
For more examples and ideas, visit:
https://docs.docker.com/get-started/
3.安装镜像
将需要的镜像文件centec_ubuntu14.4_v3.tar拷贝至预定目,如/home/ubuntu/centec_docker,执行以下命令:
ubuntu@ubuntu:~$ sudo docker load < /home/ubuntu/centec_docker/centec_ubuntu14.4_v3.tar,进入各种Loading layer,等待结束。
结束后可用命令ubuntu@ubuntu:~$ sudo docker images 查看盛科编译环境是否存在。若存在,则打印出:
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest bf756fb1ae65 2 months ago 13.3kB
centec/ubuntu14.4 v3 30e890e7f1bd 4 years ago 2.01GB
还可以直接从仓库中下载镜像…
4.正确加载镜像后,需要把代码拷贝到docker容器内,
假设代码存放在/home/ubuntu/projects/centec_src中,需要拷贝到docker容器的/home中, 命令如下:
ubuntu@ubuntu:~$ sudo docker run -it -v /home/ubuntu/projects/centec_src:/home 30e890e7f1bd------>容器ID根据实际ID进行替换
5.进入相应目录,执行make进行编译
Docker基本概念
快速入门Docker https://zhuanlan.zhihu.com/p/23599229
docker类似于虚拟机,
虚拟机->装操作系统->软件包
docker框架->镜像->容器直接运行
Docker三个核心概念
1.镜像(Image)
类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。
例如一个Ubuntu镜像就是一个包含Ubuntu操作系统环境的模板。
2.容器(Container)
类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像创建的应用实例,可以创建、启动、停止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像本身是只读的,容器从镜像启动时,Docker在镜像的上层创建一个可写层,镜像本身不变。
3.仓库(Repository)
类似于代码仓库,这里是镜像仓库,是Docker用来集中存放镜像文件的地方。注意与注册服务器(Registry)的区别:注册服务器是存放仓库的地方,一般会有多个仓库;而仓库是存放镜像的地方,一般每个仓库存放一类镜像,每个镜像利用tag进行区分,比如Ubuntu仓库存放有多个版本(12.04、14.04等)的Ubuntu镜像。
Docker基本流程
从仓库(一般为DockerHub)下载(pull)一个镜像,Docker执行run方法得到一个容器,用户在容器里执行各种操作。Docker执行commit方法将容器转化为镜像。Docker利用login、push等命令将本地镜像推送(push)到仓库。其他机器或服务器上就可以使用该镜像去生成容器,进而运行相应的应用程序了。
旧镜像->新镜像有两种方法
1.利用镜像Arun启动一个容器后修改,再利用commit生成镜像B
2.利用Dockerfile创建镜像
docker是怎么工作的
docker是一个Client-Server结构的系统,通过Socket从客户端访问!
docker为什么比VM快
1.docker有着比虚拟机更少的抽象层
2.docker用的是宿主机的内核,vm需要Guest OS
Docker常用基础指令
使用docker指令需要 root权限!!!
详细命令https://www.runoob.com/docker/docker-command-manual.html
1.docker images
列出本地镜像
2.docker run
创建一个新容器并执行相应指令
例:docker run -it [IMAGE ID] /bin/bash
3.exit
退出容器
4.docker ps -a
查看docker中运行的容器
5.docker commit
将容器转化为镜像
6.docker rm container_name/container_id
删除容器
7.docker rmi image_name/image_id
删除镜像
8.docker start
重新启动容器
9.docker attach container_name/container_id
进入后台打开的容器 (docker run -d 后台运行容器)
基于旧镜像生成新镜像
1.ubuntu@ubuntu:~$ sudo docker images 查看本地镜像
2.ubuntu@ubuntu:~$ sudo docker run -it 30e890e7f1bd 创建基于旧镜像编译环境的容器
3.进入新的环境 root@72facb718f6e:/# 在里面进行配置
4.exit退出 回到ubuntu@ubuntu~$
5.ubuntu@ubuntu:~$ sudo docker ps -a 查看所有容器
6.ubuntu@ubuntu:~$sudo docker commit 72facb718f6e fish_centec/ubuntu16.4 ID后为生成的新镜像名字,可以在ID前添加-m指定说明信息,-a指定用户信息。
7.ubuntu@ubuntu:~$ sudo docker images 查看本地镜像,发现有新生成的镜像,即为成功