docker入门

docker 入门

目录

docker的安装和配置镜像大家从网上搜索即可,本文不在叙述.

镜像操作

镜像拉取

docker pull 镜像名[:标签] 
如果没有写标签会拉取最新镜像

如拉取Ubuntu16.04
docker pull ubuntu:16.04执行完就可以看到系统开始下载镜像
可以使用docker pull --help查看更详细的使用方法和参数

列出本地镜像

docker image ls 或者 docker images

例如:

MacBook-Pro:~$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              113a43faa138        2 weeks ago         81.2MB
nginx               latest              cd5239a0906a        2 weeks ago         109MB
mysql               latest              a8a59477268d        7 weeks ago         445MB
hello-world         latest              e38bc07ac18e        2 months ago        1.85kB
MacBook-Pro:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              113a43faa138        2 weeks ago         81.2MB
nginx               latest              cd5239a0906a        2 weeks ago         109MB
mysql               latest              a8a59477268d        7 weeks ago         445MB
hello-world         latest              e38bc07ac18e        2 months ago        1.85kB

镜像删除

docker image rm 镜像1 镜像2...
其中镜像可以是镜像名,摘要,或镜像ID
使用镜像ID可以使用ID前缀,只要能够区分其他的ID即可
如上述镜像列表中的ID,第一个字母都不一样,即可使用docker image rm a 来删除mysql镜像

例如:

MacBook-Pro:~$ docker image rm a
Untagged: mysql:latest
Untagged: mysql@sha256:d60c13a2bfdbbeb9cf1c84fd3cb0a1577b2bbaeec11e44bf345f4da90586e9e1
Deleted: sha256:a8a59477268d92f434d86a73b5ea6de9bf7b05d536359413e79da1feb31f87aa
Deleted: sha256:f358e08cb953f45d72ae325ac86ad9b801d03e5adb8bee4422f85c3535f66e22
Deleted: sha256:58d319c3d623abe5925cccfff62d39f498d7a3f57d308016d59a7e95c170c7e4
Deleted: sha256:18c75ab9c315610c138a716f5383b1a7c05c5ec6f1037d9eaf3efa336002cbc5
Deleted: sha256:3c795791e99f84a81b8fef5bbfa9c59730bcf8d41f8c7bae2865e7bd55d144cf
Deleted: sha256:7afb5d8f97996db5d66a514ce726bfee8aa97636e8d9186733cec5e7fa167205
Deleted: sha256:d589bed588b460c6e6b2bfa40ab45881bf69f82b410512a7cf83ba1063f80e6e
Deleted: sha256:01d21a0d989513581e03a77e1a5c62659526338c405591557dcbc7e72668274d
Deleted: sha256:3981315864dc8a7e7ea59fa2bb695a7f8935c4037f4b69aafd12668dc6187cd1
Deleted: sha256:457c18e00cb3e4587dad7e87dd0dd3f032931174769e81ea8edd3801aa362fbc
Deleted: sha256:608379aac1e9f90f6d031c39103c7c89d603f742d67024fd6251fbc091f8f5cb
Deleted: sha256:1e80702bf4bc653ba7bb97198430a24ed775dfb6839f97440197430fc3a1fcad

这时在看类表中,已经没有mysql了

MacBook-Pro:~$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              113a43faa138        2 weeks ago         81.2MB
nginx               latest              cd5239a0906a        2 weeks ago         109MB
hello-world         latest              e38bc07ac18e        2 months ago        1.85kB

容器操作

运行容器

docker run 镜像 命令
如果运行了本地没有的镜像则docker会先把镜像下载到本地然后运行
可以通过docker run --help查看其它用法

例如:

docker run ubuntu /bin/echo "aaa"
输出:
aaa

这种操作感觉和在本地操作一样,没什么新鲜的,下面我们运行一个容器并且可以在控制台操作它

docker run -i -t ubuntu /bin/bash
其中-i为交互模式, -t是分配伪终端, 也可以写在一起-it
如果想后台运行还可以使用 -d
如果想退出后自动删除容器 --rm

例如

MacBook-Pro:~$ docker run -i -t ubuntu /bin/bash
root@eb1117aac5da:/# 
root@eb1117aac5da:/# ps
  PID TTY          TIME CMD
    1 pts/0    00:00:00 bash
   10 pts/0    00:00:00 ps

这样我们就进入容器内部的伪终端了,我们就可以随意玩耍了

查看正在运行的容器

docker container ls
MacBook-Pro:~$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
817fccd2538a        nginx               "nginx -g 'daemon of…"   24 hours ago        Up 24 hours         0.0.0.0:80->80/tcp   webserver

如果想查看全部(包含退出的)容器还可以加 -a参数

docker container ls -a
MacBook-Pro:~ fengbinshi$ docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                NAMES
eb1117aac5da        ubuntu              "/bin/bash"              4 minutes ago       Exited (0) 13 seconds ago                        zen_dijkstra
e90252aebddc        ubuntu              "/bin/echo aaaa"         13 minutes ago      Exited (0) 13 minutes ago                        gifted_torvalds
817fccd2538a        nginx               "nginx -g 'daemon of…"   24 hours ago        Up 24 hours                 0.0.0.0:80->80/tcp   webserver

可以看到刚才运行过的两个容器

容器的启动,停止,重启

启动:
docker container start 容器1 容器2....可以启动已经退出的容器
停止:
docker container stop 容器1 容器2....可以停止正在运行的容器
重启:
docker container restart 容器1 容器2....可以重启正在运行的容器

进入容器

docker attach 容器
docker exec 参数 容器 命令 命令参数 
如果使用attach后在控制台执行exit会导致容器停止
exec用法和run相似,不过run是创建运行容器而exec是进入正在运行的容器

下面的例子我们会进入后台运行的ubuntu

MacBook-Pro:~$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
eb1117aac5da        ubuntu              "/bin/bash"              14 minutes ago      Up About a minute                        zen_dijkstra
817fccd2538a        nginx               "nginx -g 'daemon of…"   24 hours ago        Up 24 hours         0.0.0.0:80->80/tcp   webserver
MacBook-Pro:~$ docker attach eb1117aac5da
root@eb1117aac5da:/# exit
exit
MacBook-Pro:~$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
817fccd2538a        nginx               "nginx -g 'daemon of…"   25 hours ago        Up 25 hours         0.0.0.0:80->80/tcp   webserver

可以看到,使用attach进入容器后使用exit退出后,ubuntu容器就会停止
下面我们使用exec看一下

MacBook-Pro:~$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
eb1117aac5da        ubuntu              "/bin/bash"              27 minutes ago      Up 2 minutes                             zen_dijkstra
817fccd2538a        nginx               "nginx -g 'daemon of…"   25 hours ago        Up 25 hours         0.0.0.0:80->80/tcp   webserver
MacBook-Pro:~$ docker exec -it eb1117aac5da bash
root@eb1117aac5da:/# exit
exit
MacBook-Pro:~$ docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
eb1117aac5da        ubuntu              "/bin/bash"              27 minutes ago      Up 3 minutes                             zen_dijkstra
817fccd2538a        nginx               "nginx -g 'daemon of…"   25 hours ago        Up 25 hours         0.0.0.0:80->80/tcp   webserver

可以看出,ubuntu没有退出

删除容器

docker container rm 容器  #删除指定容器
docker container prune  #删除所有已经停止的容器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值