Docker常用命令收集

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/qq_22260641/article/details/81322606

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

docker info 


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


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

sudo docker pull busybox

 

BusyBox是一个最小的Linux系统,它提供了该系统的主要功能,不包含一些与GNU相关的功能和选项。

下一步我们将运行一个“Hello World”的例子,我们暂且叫它“Hello Docker”吧。
 

docker run busybox /bin/echo Hello Docker

 


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

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的当前状态:
 

docker logs $sample_job


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

docker help


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

docker stop $sample_job


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

docker restart $sample_job


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

docker stop $sample_job

docker rm $sample_job


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

docker commit $sample_job job1


注意,镜像名称只能取字符[a-z]和数字[0-9]。

现在,你就可以使用以下命令查看所有镜像的列表:
 

docker images


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

docker search (image-name)


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

docker history (image_name)


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

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  查看上传的镜像

 

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页