# Docker安装

记录在ubuntu下搭建神器docker的环境~

cfe270f87a6fd65e20b2b13df9b4b4ee.png

  1. 如果之前安装过docker,先清理一下旧的文件
sudo apt-get remove docker docker-engine docker.io containerd runc
  1. 更新一下apt包
sudo apt-get update
  1. 安装下面的工具包,使apt能够通过https使用仓库
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  1. 添加Docker官方的GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  1. 为apt添加docker稳定版的仓库
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  1. 再更新一下apt包
sudo apt-get update
  1. 安装最新版docker ce
sudo apt-get install -y docker-ce
  1. 查看是否安装成功,若安装成功会显示版本信息
docker -v
  1. 将用户加入docker组(之后每次使用时不用sudo命令)
sudo usermod -aG docker name #将当前用户加入docker组中,name是用户名
su - name   #重新登陆当前用户
docker ps -a    #查看所有容器

# docker使用

# docker命令

  • 查看docker信息
docker info
  • 查看docker帮助
docker --help

# 镜像命令

  • 查看本机的所有镜像
docker images
  • 搜索dockerhub上的镜像
docker search
  • 下载某个镜像文件
docker pull nginx # pull后边跟镜像名字
  • 删除某个镜像
docker rmi nginx

# 容器的命令

  • 运行一个容器
docker run -it --name myubuntu ubuntu
# -i是交互 -t是伪终端 --name是起的名字 -d
是以守护模式后台运行,但是必须要有前台进程
# -p是指定端口映射 8888:8080将内部的8080端口映射到外部的8888端口
  • 进入一个正在运行的容器(这种方法退出的时候不会结束容器)
docker exec -it name /bin/bash  #进入容器,实际上是对容器执行后面的操作;也可以不进入容器,对容器进行操作
  • 进入一个正在运行的容器(推出的时候会结束容器)
docker attach name  #进入容器中
  • 拷贝文件,从容器到主机中
docker cp name:文件路径 本机路径

# 镜像commit

在一个容器进行一顿操作,然后将它打包成一个自己的镜像

docker commit -a="author" -m="comments" theimage myname/myimage # -a是作者名,-m是说明,之后是运行的镜像名,最后是自己起的名字

# 添加数据卷

docker run -it -v 主机文件夹:容器内文件夹 imagename

# DockerFile使用

编写一个简单的dockerFile文件

FROM centos #底层是centos,好比extends
VOLUME ["/container01","/container02"]
# 一出厂就挂了两个容器卷,如果运行的时候没有指定的话,会自动在/var目录里生成一个,具体用docker inspect 可以进行查看
CMD echo "finish,------success01"
CMD /bin/bash

上面的dockerFile相当于

docker run -it -v /host1:container01 -v /host2:/container02 centos /bin/bash

之后将dockerFile构建为镜像

docker build -f dockerFile -t namespace/mydocker .  # -f指的是dockerFile -t后跟的是名字