docker命令

1.切换root角色

sudo -s  
输入密码....

2.安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

或者

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

3.容器使用
 

1.使用容器之前必须获取镜像  docker pull ubuntu
  注:容器和镜像之间的关系:镜像是一个模板,而容器去复刻这个模块
2.启动容器
$ docker run -it ubuntu /bin/bash
参数说明:

-i: 交互式操作。
-t: 终端。
ubuntu: ubuntu 镜像。
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
3.进入容器

docker attach

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

4.启动&停止&重启&删除
$ docker start b750bbbcfd88 
$ docker stop b750bbbcfd88 
$ docker restart <容器 ID>
$ docker rm -f 1e560fca3906   注:-f 强制删除在运行的容器

4.推送镜像

查看镜像
[root@docker-test1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/ubuntu    16.04               7aa3602ab41e        5 weeks ago         115 MB
  
创建一个名为myubuntu的容器
[root@docker-test1 ~]# docker run -ti --name myubuntu -d docker.io/ubuntu
[root@docker-test1 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
651a8541a47d        docker.io/ubuntu    "/bin/bash"         37 seconds ago      Up 36 seconds                           myubuntu
  
  
docker commit :从容器创建一个新的镜像。
# docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
  
根据这个myubuntu容器提交镜像
[root@docker-test1 ~]# docker commit -a "navysummer" -m "this is test" 651a8541a47d myubuntu:v1
sha256:6ce4aedd12cda693d0bbb857cc443a56f9f569106e09ec61aa53563d0932ea4d
  
再次查看镜像,发现镜像myubuntu:v1已经提交到本地了
[root@docker-test1 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
myubuntu            v1                  6ce4aedd12cd        59 seconds ago      84.1 MB
docker.io/ubuntu    16.04               7aa3602ab41e        5 weeks ago         115 MB
  
在mybuntu:v1镜像推送到docker hub仓库中去
# docker push [OPTIONS] NAME[:TAG]
OPTIONS说明:
--disable-content-trust :忽略镜像的校验,默认开启
  
  
首先是登录docker hub (用户名:navysummer    密码:*******)
[root@docker-test1 ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username (navysummer): navysummer
Password:
Login Succeeded
  
[root@docker-test1 ~]# docker push navysummer/myubuntu:v1
The push refers to a repository [docker.io/navysummer/myubuntu]
An image does not exist locally with the tag: docker.io/navysummer/myubuntu
  
这里需要将ubuntu:v1镜像改名,在名称前加上自己的docker hub的Docker ID,即navysummer
  
[root@docker-test1 ~]# docker tag 6ce4aedd12cd navysummer/myubuntu:v1
[root@docker-test1 ~]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
myubuntu             v1                  6ce4aedd12cd        6 minutes ago       84.1 MB
navysummer/myubuntu   v1                  6ce4aedd12cd        6 minutes ago       84.1 MB
docker.io/ubuntu     16.04               7aa3602ab41e        5 weeks ago         115 MB
  
再次进行推送(注意:下面的v1的tag标签可以不打,默认是latest)。推送操作时间稍微会有一点长,耐心等待~
[root@docker-test1 ~]# docker push navysummer/myubuntu:v1          
The push refers to a repository [docker.io/navysummer/myubuntu]
b5948ba9486d: Pushed
8d7ea83e3c62: Mounted from library/ubuntu
6a061ee02432: Mounted from library/ubuntu
f73b2816c52a: Mounted from library/ubuntu
6267b420796f: Mounted from library/ubuntu
a30b835850bf: Mounted from library/ubuntu
v1: digest: sha256:e9cd9075d262848a307c92751e1a5890d883b814a31abd118161442461a1ca2d size: 1564
  
最后登录自己的Docker Hub,即https://hub.docker.com/
登录后,在Repositories里面就可以看到自己在上面推送的镜像navysummer/myubuntu:v1了,这是个对外的镜像,可以在网络上下载。
在Docker hub上可以看到这个镜像的下载命令(注意下载时跟上tag标签,如果是latest的默认tag可以不跟)
也可以直接在Docker hub上删除这个镜像(Repositories-镜像-Settings-delete)
  
  
比如在另一台服务器上下载这个镜像
[root@kevin-test ~]# docker pull navysummer/myubuntu
Pulling repository navysummer/myubuntu
Repository not found
  
需要跟上tag标签
[root@kevin-test ~]# docker pull navysummer/myubuntu:v1
v1: Pulling from navysummer/myubuntu
68e2a091ef24: Pull complete
8f9dd35f6299: Pull complete
a81a6171600b: Pull complete
a211a2bc7010: Pull complete
9e71a0b4f83a: Pull complete
0cf75bb335aa: Pull complete
c393a882769e: Pull complete
Digest: sha256:845fa3dcc9d0de1b9c701e1009918995da35a29012015f6c297a05edc489e018
Status: Downloaded newer image for navysummer/myubuntu:v1
[root@kevin-test ~]# docker  images
REPOSITORY           TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
navysummer/myubuntu   v1                  c393a882769e        12 minutes ago      84.11 MB
  
  
在本机删除这个镜像
[root@docker-test1 ~]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
myubuntu             v1                  6ce4aedd12cd        15 minutes ago      84.1 MB
navysummer/myubuntu   v1                  6ce4aedd12cd        15 minutes ago      84.1 MB
docker.io/ubuntu     16.04               7aa3602ab41e        5 weeks ago         115 MB
  
注意上面有两个6ce4aedd12cd的镜像ID,此时直接使用这个镜像ID是删除不掉的
[root@docker-test1 ~]# docker rmi 6ce4aedd12cd
Error response from daemon: conflict: unable to delete 6ce4aedd12cd (must be forced) - image is referenced in multiple repositories
  
应该先删除docker tag改名前的镜像,使用镜像名称删除。(一般在docker tag镜像改名后,最好删除改名前的镜像)
[root@docker-test1 ~]# docker rmi myubuntu:v1
Untagged: myubuntu:v1
Untagged: navysummer/myubuntu@sha256:e9cd9075d262848a307c92751e1a5890d883b814a31abd118161442461a1ca2d
  
[root@docker-test1 ~]# docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
navysummer/myubuntu   v1                  6ce4aedd12cd        15 minutes ago      84.1 MB
docker.io/ubuntu     16.04               7aa3602ab41e        5 weeks ago         115 MB
  
这个时候就可以删除镜像ID删除了
[root@docker-test1 ~]# docker rmi 6ce4aedd12cd
Untagged: navysummer/myubuntu:v1
Deleted: sha256:6ce4aedd12cda693d0bbb857cc443a56f9f569106e09ec61aa53563d0932ea4d
Deleted: sha256:0ddeb6a16badd042914c2e72b9ef0331550c1cdcc4bdc6650a90cd9f57f1501b
[root@docker-test1 ~]# docker images        
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/ubuntu    16.04               7aa3602ab41e        5 weeks ago         115 MB

摘抄:https://www.cnblogs.com/navysummer/p/12806743.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值