首页 > 技术文章 > docker的安装及使用

louyifei0824 2018-12-09 22:28 原文

docker

一个虚拟化的技术,可以帮我们打包我们的环境, 快速的部署到其他机器上, 类似于一个虚拟机, 但是docker消耗的资源比较少

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

沙箱机制就相当于一个轮船运载的集装箱, 并不关心内部是怎么样的, 只关心把这个箱子打包好, 完成运输

docker 安装

ubuntu 16.04 安装最新的 docker

docker有两个版本, 一个是docker-ce(社区版), 一个是docker-ee(企业版)

docker-compse:可运行和管理多个docker容器。

docker-machine:docker官方提供的docker管理工具。可管理多个docker主机,可搭建swarm集群。

1.卸载旧版本的docker

全新安装时,无需执行该步骤

$ sudo apt-get remove docker docker-engine docker.io

2.更新系统软件

$ sudo apt-get update

3.安装依赖包

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

4.安装官方密钥

执行该命令时,如遇到长时间没有响应说明网络连接不到docker网站,需要使用代理进行。

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

显示OK,就代表添加成功.

5.添加仓库

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

6.再次更新软件

$ sudo apt-get update

7.安装docker

如果想指定安装某一版本,可使用 sudo apt-get install docker-ce=<VERSION>  命令,把<VERSION>替换为具体版本即可。

默认是安装最新版本

$ sudo apt-get install docker-ce

8.查看docker的版本

$ docker -v

显示“Docker version 17.09.0-ce, build afdb6d4”字样,表示安装成功。

docker的基本操作

docker images  查看本地的镜像
docker search 镜像名  搜索网上的相关镜像
docker pull 镜像名  拉取你要的镜像
docker rmi 镜像名  删除镜像
docker save 镜像名|gzip>>保存的文件名.tar.gz
docker load 保存的文件名.tar.gz

docker run -it 镜像名 进入时使用的shell方式 bash sh
		--name 名字  可以给我们的容器起一个名字

docker ps 查看正在运行的容器
			-a 能显示那些已经关掉的容器
docker rm 容器id或者容器名字
docker exec -it 容器的名字 bash  进入到一个正在启动的容器
exit 可以退出当前的容器

网络映射

docker run -d -p 主机端口:容器端口 容器名 命令(比如nginx)

数据卷

-v 宿主机目录:容器目录

数据卷容器

--volumes-from + 容器名

容器互联

先启动一个容器 docker run -d --name web1 -p 80:80 mynginx ningx
在启动一个容器: docker run -d --name web2 --link web1 -p 8080:80 mynginx ningx

Dockerfile

FROM ubuntu

MAINTAINER louyifei abc835352@163.com

RUN apt-get update
RUN apt-get install nginx -y


RUN echo "daemon off;">>/etc/nginx/nginx.conf
#设置开放端口
EXPOSE 80

# 默认在容器启动的时候执行的命令
CMD ["nginx"]

sudo docker build -t tag ./

常见命令

FROM: 目地:指定基础的image,表示新程序基于哪个image构建新image 语法: FROM <image>:<tag>tag:版本号,如果没有,则使用最新版本
MAINTAINER 指定镜像创建者信息
语法:MAINTAINER <name>
RUN

RUN可以运行任何被基础image支持的命令

语法:

.

CMD

容器启动时运行的操作。该指令只能在文件中存在一次,如果有多个,则只执行最后一条

USER 设置启动容器的用户,默认是root用户。指定 memcached 的运行用户daemon

ENTRYPOINT 设置容器启动时执行的操作。该指令只能在文件中存在一次,如果有多个,则只执行最后一条

EXPOSE 指定容器需要映射到宿主机器的端口
ENV 在image中设置一个环境变量。



ADD 从src复制文件到容器的的dest路径
VOLUME 指定挂载点.

WORKDIR 切换目录。可以多次切换工作目录(相当于cd命令)

上传自己的镜像到仓库

1 docker login 可以加你的docker网址 默认是https://hub.docker.com

2 给你的镜像打标签 docker tag 镜像名/id 用户名/存到远端叫什么:tag标签

3 docker push 第2步 镜像名/id后边跟的 名字

sudo docker login
sudo docker images
sudo docker tag 77b3321ee9b8 louyifei8888/project
sudo docker push louyifei8888/project

 

推荐阅读