Docker Install

CentOS

curl -sSL https://get.daocloud.io/docker | sh

然后需要添加自启动项

systemctl enable docker

启动Docker, 重启Docker

systemctl start docker

systemctl restart docker

Windows10 家庭中文版

https://www.cnblogs.com/temari/p/13188168.html

此处按照该文章的方法进行。

Docker Hello World

1
docker run ubuntu:15.10 /bin/echo "Hello world"

各个参数解析:

  • docker: Docker的二进制执行文件
  • run: 运行一个命令
  • ubuntu:15.10:指定要运行的镜像
  • /bin/echo “Hello world”: 在启动的容器里执行的命令

以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo “Hello world”,然后输出结果。

运行交互式的实例

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

各个参数解析:

  • -t: 在新容器中指定一个终端或者是一个伪终端
  • -i:开启交互模式

输入exit退出实例

启动容器(后台模式)

创建

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

使用-d 创建一个以后台模式运行的容器

标准格式:

docker run -itd --name ubuntu-test ubuntu /bin/bash

并不会输出Hello World,反之会输出容器的实例ID

1
2
[root@izuf6jf12ks7n33jyg1qplz ~]# docker run -d ubuntu:15.10
fa707d80ed98dcee91f488ad2b671970f79e4eae3a59cda23a52d97fc850cac5

查看后台运行中的实例

使用docker ps

1
2
3
[root@izuf6jf12ks7n33jyg1qplz ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a44d193106ef ubuntu:15.10 "/bin/sh -c 'while t…" 3 seconds ago Up 2 seconds epic_chatelet

输出详情介绍:

CONTAINER ID: 容器 ID。

IMAGE: 使用的镜像。

COMMAND: 启动容器时运行的命令。

CREATED: 容器的创建时间。

STATUS: 容器状态。

其中,状态有7种:

  • created(已创建)
  • restarting(重启中)
  • running 或 Up(运行中)
  • removing(迁移中)
  • paused(暂停)
  • exited(停止)
  • dead(死亡)

PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。

NAMES: 自动分配的容器名称。

查看容器内的标准输出

docker logs

1
2
3
4
5
6
7
8
docker logs sharp_hertz
hello world
hello world
hello world
hello world
hello world
hello world
hello world

其中, sharp_hertz为容器的别名,

可以使用docker rename来重命名

使用docker stop []来停止容器

1
2
[root@izuf6jf12ks7n33jyg1qplz ~]# docker stop test
test

停止的容器可以通过docker restart []来重启

1
2
# docker stop test
test

可以使用docker ps -a查看所有实例,包括已暂停的实例

使用 docker container prune清理所有终止的容器

进入容器

在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:

  • docker attach
  • docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

更多参数说明可使用 docker exec --help 命令查看。

导入和导出容器

导出容器

如果要导出本地某个容器,可以使用 docker export 命令。

1
2
3
[root@izuf6jf12ks7n33jyg1qplz ~]# docker export test > ubuntu_test.tar
[root@izuf6jf12ks7n33jyg1qplz ~]# ls
1 nginx-1.10.1.tar.gz ubuntu_test.tar

导入容器

1
2
[root@izuf6jf12ks7n33jyg1qplz ~]# docker import ubuntu_test.tar test/ubuntu
sha256:30f34256cb24555a2a49811f8c43fc1de5358ae70afa00c0eac894237818a74b

查看导入的镜像:

1
2
3
[root@izuf6jf12ks7n33jyg1qplz ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test/ubuntu latest 30f34256cb24 32 seconds ago 119MB

运行镜像:

1
2
[root@izuf6jf12ks7n33jyg1qplz ~]# docker run -itd --image_test 30f34256cb24555a2a49811f8c43fc1de5358ae70afa00c0eac894237818a74b /bin/bash
87bbaa133ac951b8bb0661528457be18b50691c25e68b6596e7b9fe04089484a