Docker学习笔记

安装docker

Ubuntu安装docker

安装没什么说的,直接看教程就行

Docker的使用

REPOSITORY和TAG

REPOSITORY : 镜像的仓库源
TAG  :镜像的标签

用REPOSITORY:TAG来表示镜像

下载一个新镜像

1
docker pull ubuntu:16.04

查看镜像

1
docker image ls

启动一个docker

后台运行

1
2
3
4
# method 1
docker run -d -p 4444:4444 -p 80:80 ubuntu:16.04 /etc/init.d/apache strat
# method 2
docker run -dit -p 4444:4444 ubuntu:16.04

参数介绍:

-d  后台运行
-p  一对一的端口映射
ubuntu:16.04 docker镜像
/etc/init.d/apache strat  如果docker中没有任务运行则会退出,可以用服务来保持docker容器运行
-P  将容器中的端口随机和本机的高端口映射
  • 1.查看端口映射
1
docker port 容器名
  • 2.停止运行中大的容器
1
docker stop 容器名
  • 3.重启容器
1
docker start 容器名 # 不同于docker run
  • 4.查看容器内部的标准输出
1
docker logs [ID或者名字]
  • 5.进入后台运行的docker
1
2
3
4
5
# 方法1
docker attach [ID或者名字]

# 方法2 即使exit退出容器也会后台运行(-it input tty)
docker exec -it [ID或者名字] /bin/sh

前台运行

1
docker run -t -i ubuntu:16.04 /bin/bash

参数介绍:

-t 分配标准的TTY(开启容器中的terminal)
-i 开启了input(输入)功能
/bin/bash [可选,-t已经指定了bash]容器中无程序运行则会退出,但是/bin/bash不能保持容器后台运行

查看运行中的docker

1
docker ps

镜像管理

创建本地镜像

Method 1 :commit

1
2
3
4
5
6
7
8
9
10
11
# 进入容器
docker run -i -t ubuntu:16.04 /bin/bash

# 一系列的操作
.....

# 退出容器
exit

# 更新镜像
docker commit -m="描述" -a="作者" imageId 目标镜像名(msf:1.0)

Method 2 :构建镜像文件

1
docker build -t 目标镜像名 .   # .表示Dockerfile所在目录

镜像仓库

不得不说官方的镜像仓库真的是太慢了,这里主要介绍阿里云的镜像仓库使用。

登录阿里云docker registry:

1
$ sudo docker login --username=admin_tony78941695 registry.cn-hangzhou.aliyuncs.com

登录registry的用户名是您的阿里云账号全名,密码是您开通服务时设置的密码。

你可以在镜像管理首页点击右上角按钮修改docker login密码。

从registry中拉取镜像:

1
$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/admintony/msf:[镜像版本号]

将镜像推送到registry:

1
2
3
4
5
$ sudo docker login --username=admin_tony78941695 registry.cn-hangzhou.aliyuncs.com

$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/admintony/msf:[镜像版本号]

$ sudo docker push registry.cn-hangzhou.aliyuncs.com/admintony/msf:[镜像版本号]

其中[ImageId],[镜像版本号]请你根据自己的镜像信息进行填写。

容器的导入导出

  • 方法1:
1
2
docker save ubuntu:16.04>/root/ubuntu.tar
docker load<ubuntu.tar
  • 方法2:
1
2
docker export [imageId]> ubuntu.tar
cat ubuntu.tar | sudo docker import - ubuntu:import