Ubuntu下Docker使用总结

9 阅读1分钟

1、获取镜像

$ docker search ubuntu    # 镜像查找

$ docker pull ubuntu:18.04 # 如果不带18.04,则默认拉取latest

2、启动容器

$ docker run -it ubuntu:1804 /bin/bash

参数说明

-i: 交互式操作

-t: 终端。

ubuntu: ubuntu 仓库名

1804:仓库下的镜像

/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash

$ docker exec -it ubuntu:1804 /bin/bash

exec 启动的容器,exit将不会退出,而run方式则会退出。

3、要退出终端,直接输入

$ exit

4、查看所有的容器命令和他们的状态如下:

$ docker ps -a #查看全部容器

$ docker ps    #查看正在运行的容器

4、使用 docker start 启动一个已停止的容器:

$ docker start <容器名称|容器ID>  #启动容器

$ docker attach <容器名称|容器ID>  #进入到正在运行的容器

$ docker stop <容器名称|容器ID>    #停止容器

5、后台运行

在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式

$ docker run -itd --name ubuntu-test ubuntu /bin/bash

注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec

-name 就是指定容器名称

6、删除镜像和容器

docker rm <容器名称|容器ID>

docker rmi <镜像名称|镜像ID> # 删除镜像前需把对应容器删除掉

7、代码放入容器

#1 生产环境(复制代码到容器)

在构建时,将代码放入容器中:

(1)启动速度块;

(2)一次构建,到处运行;(一致性、可移植)

(3)可快速回滚(快速切换到上一版本的镜像)

#2 开发环境(使用绑定挂载)

在进行本地开发时,将代码挂载到容器中:

(1)便于调试。日志文件可以写入绑定挂载的目录中。

(2)立即生效。将代码绑定挂载到容器中,修改后可以立即生效;

「绑定挂载」带来的问题:

(1)容器中的进程可以修改、删除主机中绑定挂载的文件。功能强大,但是也存在安全隐患。

(2)绑定挂载暴露文件到容器,降低了容器的安全和隔离。

8、镜像导入和导出

导出镜像

$ docker save -o nginx.tar nginx:latest

或

$ docker save > nginx.tar nginx:latest

导入镜像

$ docker load -i nginx.tar

或

$ docker load < nginx.tar

9、不要用commit创建镜像,而要用Dockerfile,因为commit会比较臃肿