通过源安装最新Docker
sudo apt-get install apt-transport-https
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker
出错
Failed to start docker.service: Unit docker.service is masked.
systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service
sudo docker —或者sudo su之后再操作
Images镜像
docker pull ubuntu:latest
获取NAME镜像的TAG版本(默认可写latest来获取最新)
docker images
docker inspect ID
查看已有镜像(其中ID标识了镜像)
inspect可以获取镜像的详细信息
docker rmi ubuntu
删除镜像
docker search ubuntu
搜索仓库镜像
创建镜像
根据已有容器创建
docker commit -m "say something" -a "Docker"s Name" ID REPOSITORY
####存出镜像
docker save -o IMAGESNAME.tar IMAGES:TAG
####载入镜像(下面两个都可以)
docker load < IMAGESNAME.tar
docker load --input IMAGESNAME.tar
####上传镜像
若是自己自制的镜像需要上传 比如brand用户的myimages:latest
docker tag myimages:latest brand/myimages:latest
docker push myimages:latest
重要
上传前要先docker login
Container容器
进入容器
docker exec -it NAME /bin/bash
这样就打开一个root@ID的容器交互终端
实在不建议用带SSHD服务的容器
新建容器
docker create -it ubuntu:latest
-it可产生一个可交互的伪终端
新建并运行容器
docker run ubuntu -t -i ubuntu:latest /bin/bash
- 新建运行分配一个伪终端绑定到容器标准输入运行bash
- run = create + start
- 在容器bash下exit推出并停止容器不放心可以再docker stop一下
运行容器 start
停止容器 stop
重启容器 restart
删除容器 rm
导入容器 cat xxx.tar | docker import REPSITORY:xxx/xxx:xxx
导出容器 export ID > xxx.tar
Dockerfile文件
Dockerfile 简介
- Docker可以使用Dockerfile文件来建立一个image镜像。 Dockerfile 中包含有建立image镜像的所有配置信息和可执行命令。
- 使用 docker build 命令就可以根据你指定的Dockerfile文件建立一个image镜像,Dockerfile配置决定了docker容器的运行状态和结构。
$ sudo docker build .
- 定义名字 name/name
- 定义标签 -t name:tag
$ sudo docker build -t shykes/myapp .
- Docker daemon 会一步一步的执行image建立操作,最后输出新建立的image id. 然后docker daemon会自动清理发送过的资源文件。