docker使用总结

一、容器的创建和使用

1)下载镜像

$ docker pull ubuntu:16.04
$ docker pull centos:7.2.1511

2)创建容器

# 方式一:后台启动
docker run -itd centos:7.2.1511 /bin/bash
# 方式二:加上网络映射
docker run -it --net=host centos:7.2.1511
# 方式三:加上端口映射
docker run -d --name centos7.2 -p 80:80 -p 81:81 -p 3306:3306 --privileged=true centos:7.2.1511 /usr/sbin/init
# 方式四:挂载宿主机目录启动,宿主机的/data目录挂载到容器的/root目录
docker run -it -v /data:/root centos /bin/bash

-t 表示在新容器内指定一个伪终端或终端
-d 表示不会进入容器
-i 表示允许我们对容器内的 (STDIN) 进行交互

3)然后我们使用docker ps查看到该容器ID信息,接下来就进入该容器:

$ docker attach CONTAINER_ID
# 或者指定名称
$ sudo docker exec -it centos7.2 /bin/bash

注:Ctrl + q + p是退出容器但保持后台运行,exit或者Ctrl + D命令是退出并关闭容器。

4)列出所有容器ID

docker ps -aq

# 查看所有运行或者不运行容器
docker ps -a

5)停止所有的container(容器),这样才能够删除其中的images:

docker stop $(docker ps -a -q) 或者 docker stop $(docker ps -aq)

6)如果想要删除所有container(容器)的话再加一个指令:

docker rm $(docker ps -a -q) 或者 docker rm $(docker ps -aq)

7)删除所有停止的容器

docker container prune

8)查看当前有些什么images

docker images

9)删除images(镜像)

# 通过image的id来指定删除谁
docker rmi <image id>

# 想要删除untagged images,也就是那些tag为none的image的话可以用
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

# 要删除全部image(镜像)的话
docker rmi $(docker images -q)

# 强制删除全部image的话
docker rmi -f $(docker images -q)

# 删除所有不使用的镜像
docker image prune --force --all或者docker image prune -f -a

10)容器和宿主机相互复制

# 从容器到宿主机复制
 	docker cp tomcat:/webapps/js/text.js /home/admin
 	docker cp 容器名:容器路径 宿主机路径

# 从宿主机到容器复制
docker cp /home/admin/text.js tomcat:/webapps/js
docker cp 宿主路径中文件 容器名:容器路径

11)停止、启动、杀死、重启一个容器

docker stop Name或者ID
docker start Name或者ID
docker kill Name或者ID
docker restart name或者ID

12)docker进入容器,查看配置文件

docker exec :在运行的容器中执行命令
        -d :分离模式: 在后台运行
        -i :即使没有附加也保持STDIN(标准输入) 打开,以交互模式运行容器,通常与 -t 同时使用;
        -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
docker exec -it  f94d2c317477 /bin/bash

13) Rename Docker Image

// Using Image Name
$ docker tag <OLD NAME (REPOSITORY:TAG)> <NEW NAME (REPOSITORY:TAG)>
e.g.
$ docker tag hello-world:latest hello-world:latest_renamed_using_repo_and_tag

// Using Image ID
$ docker tag <IMAGE ID> <NEW NAME (REPOSITORY:TAG)>
e.g. 
$ docker tag bf756fb1ae65 hello-world:latest_renamed_using_imageId

14) Rename Docker Container

// Using Container Name
$ docker rename <OLD NAME> <NEW NAME>
e.g.
$ docker rename sad_shaw hello_world

// Using Container ID
$ docker rename <CONTAINER ID> <NEW NAME>
e.g.
$ docker rename 1972fa4393d5 hello_world

二、容器打包成镜像并保存到dockerhub

1)首先登录dockerhub

$ docker login

2)查看容器的信息找出CONTAINER ID

$ docker ps -a

3)把所需上传的容器变为镜像

$ docker commit -m "info" -a "author" [CONTAINER ID] [新的镜像名称]

4)接下来为存在于本地的镜像打标签

$ docker tag imageName dockerUserName/xxx[:tag]

注:imageName为你需要上传的镜像name,dockerUserName为dockerHub的登录名,xxx为仓库名,必须和你在dockerhub中新建的仓库名相同,tag不指定就是latest。

5)打包好之后,就把打包好的镜像上传

$ docker push dockerUserName/xxx[:tag]

注:tag不指定就是latest

最后去dockerhub上查看是否上传成功!

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦