上手步骤
安装docker–>普通用户加入docker用户组–>获取镜像–>基于镜像创建容器–>进入容器–>可以在容器里随意捯饬环境或者运行东西啦~
安装docker
sudo apt-get update
sudo apt-get install docker.io
普通用户加入docker用户组
# 新建docker用户组
newgrp docker
# 为用户组docker增加用户user1
sudo gpasswd -a user1 docker
镜像的使用
# 查找镜像
docker search ubuntu
# 获取新镜像
docker pull ubuntu:13.10 # 获取名为ubuntu:13.10的镜像
# 使用镜像
docker run ubuntu:13.10 # 与创建容器相同,详见下个模块
# 查看镜像
docker images
基于镜像新建容器
<首先要有可使用的镜像,可按上面模块 获取镜像,并查看已有的镜像>
常用方式
# 一般方式
docker run test/ubuntu:v1 # test/ubuntu: 镜像名 v1: tag
# 可以通过指定参数,启动一个bash交互终端
docker run -it test/ubuntu:v1 /bin/bash # 参数-t让Docker分配一个伪终端并绑定在容器的标准输入上,-i让容器的标准输入保持打开
更多选项
# -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用
# -i:以交互模式运行容器,通常与 -t 同时使用
# -d:后台运行容器,并返回容器ID
# --name:为容器指定一个名称
# -p:端口映射,格式为:主机(宿主)端口:容器端口
# -v: 挂载宿主机文件夹,格式为: 宿主机文件夹:容器文件夹
# --link: 添加链接到另一个容器
# -m:设置容器使用内存最大值;
# examples
# 使用docker镜像test/ubuntu:v1以后台模式启动一个容器,并将容器命名为mycontainer
docker run -tid --name mycontainer test/ubuntu:v1
# 使用镜像test/ubuntu:v1以后台模式启动一个容器, 并将容器的8080端口映射到宿主机的8080端口
docker run -tid --name mycontainer -p 8080:8080 test/ubuntu:v1
# 使用镜像test/ubuntu:v1以后台模式启动一个容器,并将容器的8080端口映射到宿主机的8080端口
# 并将主机的目录 /home/user1/test_docker 映射到容器的 /home
docker run -tid --name mycontainer -p 8080:8080 -v /home/user1/test_docker:/home test/ubuntu:v1
# 使用镜像test/ubuntu:v1启动一个容器,在容器内执行/bin/bash命令
docker run -it test/ubuntu:v1 /bin/bash
管理容器
# 查看在运行的容器
docker ps
# 查看所有容器
docker ps -a
# 查看最近创建的n个容器
docker ps -n
# 启动已停止的容器
docker start $CONTAINER_ID
# 终止容器
docker stop $CONTAINER_ID
# 进入在后台的容器 (以-d创建的容器)
docker attach $CONTAINER_ID # 注意:如果从这个容器退出,会导致容器的停止。
docker exec -it $CONTAINER_ID /bin/bash # 如果从这个容器退出,不会导致容器的停止
# 删除容器
docker rm -f $CONTAINER_ID
# 清理所有已停止的容器
docker container prune
# 容器的导入和导出
# 导出容器快照到本地文件 ubuntu.tar
docker export $CONTAINER_ID > ubuntu.tar
# 从容器快照文件中再导入为镜像
cat docker/ubuntu.tar | docker import - test/ubuntu:v1 # 将快照文件 ubuntu.tar 导入到镜像 test/ubuntu:v1:
传输文件
宿主机向Docker容器传送文件
# 复制主机文件夹data到ID为$CONTAINER_ID的容器的/home/test/目录下
docker cp /home/user1/data/ $CONTAINER_ID:/home/test/
Docker容器向宿主机传送文件
# 复制$CONTAINER_ID容器的/home/test/路径下的文件到主机的/home/user1/data/下
docker cp $CONTAINER_ID:/home/test/ /home/user1/data/
新建镜像
以下内容参考自菜鸟教程~
Docker 镜像使用 | 菜鸟教程www.runoob.com
1、从已经创建的容器中更新镜像,并且提交这个镜像
# 使用该镜像创建容器,在运行的容器内使用 apt-get update 命令进行更新
# 在完成操作之后,输入 exit 命令来退出这个容器
# 通过命令 docker commit 来提交容器副本
docker commit -m="has update" -a="user1" $CONTAINER_ID user1/ubuntu:v1
#-m: 提交的描述信息
#-a: 指定镜像作者
#user1/ubuntu:v1 指定要创建的目标镜像名
2、使用 Dockerfile 指令来创建一个新的镜像
# 使用命令docker build, 从零开始来创建一个新的镜像。
# 为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。
$ cat Dockerfile
FROM centos:6.7
MAINTAINER Fisher "fisher@sudops.com"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd runoob
RUN /bin/echo 'user1:123456' |chpasswd
RUN /bin/echo -e "LANG="en_US.UTF-8"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
#每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。
#第一条FROM,指定使用哪个镜像源
#RUN 指令告诉docker 在镜像内执行命令,安装了什么。。。
#然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。
$ docker build -t test/centos:6.7
#-t :指定要创建的目标镜像名
#. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径
设置镜像标签
docker tag $IMAGE_ID test/ubuntu:dev
版权声明:本文为weixin_33955307原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。