一. 安装Docker
1.创建docker用户并将其纳入docker这个用户组
useradd docker -g docker
2.更新源
sudo apt-get update
3.安装docker
apt-get install -y docker.io
4.启动docker
systemctl start docker
5.验证docker是否安装成功
docker version
6.为docker配置国内仓库
在docker的宿主机器上编辑此文件
vim /etc/docker/daemon.json
如果文件不存在则建一个,添加如下代码
{
"registry-mirrors":["http://docker.mirrors.ustc.edu.cn";]
}
二.运行容器
这时安装的Docker只是一个“裸”Docker,上面并没有容器。
如果我们想在Docker中运行一个Ubuntu系统,需要我们pull一个Ubuntu的镜像到本地Docker中
1.通过pull命令来获取Ubuntu 14.04版本的系统镜像
docker pull ubuntu:14.04
2.用run 命令将镜像运行起来
docker run -it ubuntu:14.04
如果发现终端交互的用户名变了,说明我们进入了容器的内部,效果如下:
这时我们所做的任何操作都是针对目前容器而言,不会影响原来的系统,例如我们可以在里面安转nginx服务器,
运行如下命令:
sudo apt-get install -y nginx
发现报如下错误:
E: Unable to locate package nginx 解决方式:apt-get update 更新源
安装完成后执行 nginx -v 就会发现我们已经将nginx安装成功了。
三 .将容器转化为镜像
如何能把容器中安装的内容保存下来,这样我们下次就无需再次安装了。这就是Docker中将容器转换为镜像的技术。
1.查看运行过的docker容器
docker ps -a
2.把容器转化为镜像
sudo docker commit -m “Added nginx from ubuntu14.04” -a “saymagic” 79c761f627f3 saymagic/ubuntu-nginx:v1
其中,-m参数用来来指定提交的说明信息;-a可以指定用户信息的;79c761f627f3代表的时容器的id;saymagic/ubuntu-nginx:v1指定目标镜像的用户名、仓库名和 tag 信息。创建成功后会返回这个镜像的 ID 信息。注意的是,你一定要将saymagic改为你自己的用户名。因为下文还会用到此用户名。
这时我们再次使用docker images命令就会发现此时多出一个我们刚刚创建的镜像
此时运行docker run -it saymagic/ubuntu-nginx:v1就会是一个已经安装了nginx的容器:
3.存储镜像
首先,我们需要成为Docker Hub的用户,前往https://hub.docker.com/进行注册。需要注意的是,为了方便下面的操作,你需要将你的用户名设为和我刚刚在上文提到的自定义用户名相同,例如我的刚刚将镜像的名字命名为是saymagic/ubuntu-nginx:v2,所以我的用户名为saymagic、注册完成后记住用户名、密码、邮箱。
登录Docker Hub
docker login
把刚才生成的镜像存储到docker hub 上
docker push gezongyang/ubuntu-nginx:v1
此时,我们的镜像已经被上传到Docker Hub 上面了
这样其他用户也可以docker pull gezongyang/ubuntu-nginx 来获取一个安装了nginx的ubuntu系统了。