Docker常用命令收集

Docker常用命令收集

首先,让我们通过下面的命令来检查Docker的安装是否正确:

1
docker info

如果没有找到这条命令,则表示Docker安装错误。如果安装正确,则会输出类似下面的内容:

到这一步Docker里还没有镜像或是容器。所以,让我们通过使用命令预先构建的镜像来创建来一个:

1
sudo docker pull busybox

BusyBox是一个最小的Linux系统,它提供了该系统的主要功能,不包含一些与GNU相关的功能和选项。
下一步我们将运行一个“Hello World”的例子,我们暂且叫它“Hello Docker”吧。

1
docker run busybox /bin/echo Hello Docker

现在,让我们以后台进程的方式运行hello docker:

1
sample_job=$(docker run -d busybox /bin/sh -c "while true; do echo Docker; sleep 1; done")

sample_job命令会隔一秒打印一次Docker,使用docker logs可以查看输出的结果。如果没有给这个job起名字,那这个job就会被分配一个id,以后使用命令例如docker logs查看日志就会变得比较麻烦。
运行docker logs命令来查看job的当前状态:

1
docker logs $sample_job

所有Docker命令可以用以下命令查看:

1
docker help

名为sample_job的容器,可以使用以下命令来停止:

1
docker stop $sample_job

使用以下命令可以重新启动该容器:

1
docker restart $sample_job

如果要完全移除容器,需要先将该容器停止,然后才能移除。像这样:

1
2
3
docker stop $sample_job

docker rm $sample_job

将容器的状态保存为镜像,使用以下命令:

1
docker commit $sample_job job1

注意,镜像名称只能取字符[a-z]和数字[0-9]。
现在,你就可以使用以下命令查看所有镜像的列表:

1
docker images

镜像是存储在Docker registry。在registry中的镜像可以使用以下命令查找到:

1
docker search (image-name)

查看镜像的历史版本可以执行以下命令:

1
docker history (image_name)

最后,使用以下命令将镜像推送到registry:

1
docker push (image_name)

非常重要的一点是,你必须要知道存储库不是根存储库,它应该使用此格式(user)/(repo_name)。

PS:
1

2

3

4

5

6

docker run -i -t ubuntu /bin/bash 进入bash

-t分配伪终端-i让容器标准输出保持打开

docker search mysql搜索镜像

docker rmi ubuntu/id 根据标签或id删除镜像

docker rm e81删除容器

docker attach容器id 或docker attach容器name重新进入未关闭的容器

镜像

创建镜像三种方法

基于镜像容器创建

-a作者信息

-m提交消息

-p提交时暂停容器
1

docker commit -m “Add new File” -a “Docker NewBee” a984984 test 提交一个镜像 返回一个新容器id test为容器名

基于本地模板导入

1

sudo cat ubuntu_16.04.tar.gz | docker import - ubuntu:16.04

基于DockerFile创建

1

2

docker save -o ubuntu_16.04.tar ubuntu:16.04存入镜像

docker load –input ubuntu_16.04.tar 载入镜像

上传镜像

1

docker push

容器

新建容器
1

2

3

4

docker create -it ubuntu:latest创建容器

docker ps -a查看容器

ctrl + d退出并关闭容器

ctrl + p +q退出但不关闭容器

新建并启动容器

1

2

docker run ubuntu /bin/echo ‘hello world’ 执行完后容器自动终止

docker run等价于docker run再docker start命令

守护运行态

1

2

3

4

-d参数实现守护进程

docker run -d ubuntu /bin/sh -c “while true; do echo hello world; sleep 1 ;done”

docker ps 查看

docker logs ce5查看容器输出信息

终止容器

1

2

3

4

docker stop ce5终止容器

docker ps -a -q查看处于终止状态的容器ID信息

docker start ce5启动终止的容器

docker restart ce5重新启动正在运行的容器

进入容器

1

2

3

4

5

docker run -idt ubuntu

docker ps

docker attach names多个容器同时使用时,当一个窗口因命令阻塞时,其他窗口也无法操作

docker exec -ti id /bin/bash 使用-it时,类似console界面,不会像attach因为退出,导致整个容器退出

这种方式可以替代ssh nenter nsinit方式,在容器内进行操作

删除容器

1

2

3

4

docker rm 删除处于终止状态的容器

-f强制终止并删除

-l删除容器的链接,但保留容器

-v 删除容器挂在的数据卷

导入和导出容器

1

2

3

4

5

docker export id >demo.tar

cat demo.tar | sudo docker import - ubuntu:16.04

docker images

docker load于docker import 都可以文件到镜像库,区别:load保留完整记录,体积大,import快照

导入时可以指定元数据信息

仓库

1

2

3

4

5

6

docker run -p 5000:5000 registry

docker images

docker tag ubuntu:16.04 localhost:5000/ubuntu:16.04

docker push localhost:5000/ubuntu:16.04

curl

curl http://60.205.215.243:5000/v2/_catalog 查看上传的镜像


本作品采用知识共享署名 4.0 中国大陆许可协议进行许可,欢迎转载,但转载请注明来自御前提笔小书童,并保持转载后文章内容的完整。本人保留所有版权相关权利。

本文链接:https://royalscholar.cn/2018/07/31/Docker常用命令收集/

# Docker

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×