Ubntu下docker的安装与基本使用

Ubuntu环境下Docker安装与实战指南
本文详细介绍了如何在Ubuntu系统中安装Docker,并通过实例演示了从基础的hello-world到容器的创建、镜像的使用、端口映射、文件操作等一系列基本操作,帮助读者快速掌握Docker的使用技巧。

1 安装

$ wget -qO- https://get.docker.com/ | sh /* 下载与安装 */

$ curl -sSL https://get.docker.com/ | sh /* 和上面的二选一 */

$ sudo usermod -aG docker username /* 允许username启动docker */

$ reboot /* 重启 */

$ sudo service docker start /* 启动服务 */

$ docker run hello-world /* 测试hellworld */

$ sudo vim /etc/docker/daemon.json /* 配置镜像仓库,写入以下内容 */

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

$ service docker restart /* 重启服务 */

2 hellworld

2.1 helloworld

$ docker run ubuntu:18.10 /bin/echo "Hello world" /* 本地没有镜像时,自动拉取,取决于网速,会失败 */

2.2 与镜像交互

$ docker run -i -t ubuntu:18.10 /bin/bash /* 与容器交互 */

# exit /* 退出交互 */

2.3 后台启动

$ docker run -d ubuntu:18.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" /* 后台启动 */

$ docker ps /* 查看运行的容器,回显包括id与name */

$ docker logs <id>/<name> /* 查看容器内的输出 */

$ docker stop <id>/<name> /* 停止容器 */

3 容器的使用

3.1 基本命令

$ docker /* 查看docker的命令选项 */

$ docker stats --help /* 查看stats的使用帮助 */

3.2 运行web应用

$ docker pull training/webapp # 载入镜像

$ docker run -d -P training/webapp python app.py /* 在镜像中以后台模式运行应用,  -d:让容器在后台运行, -P:将容器内部使用的网络端口映射到主机上 */

$ docker run -d -p 5000:5000 training/webapp python app.py /* 指定端口运行 */

$ docker ps /* 查看运行的容器,回显包括id与name */

$ docker port /*查看容器的主机端口,docker ps 也包含端口信息 */

$ docker logs -f <id>/<name> /* 查看web应用日志,-f: 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。 */

$ docker top <id>/<name> /* 查看容器内的进程 */

$ docker inspect <id>/<name> /* 查看容器的配置信息 */

$ docker stop <id>/<name> /* 停止容器 */

$ docker start <id>/<name> /* 重启已经停止的容器 */

$ docker rm <id>/<name> /* 移除已经停止的容器 */

4 镜像的使用

$ docker images /*查看本地镜像 */

$ docker pull ubuntu:18.10 /* 拉取ubuntu18.10镜像 */

$ docker search httpd /* 搜索httpd镜像 */

4.1 创建镜像

$ docker run -t -i ubuntu:18.10 /bin/bash /* 启动容器 */

# apt-get update /* 在容器内更新,或者做其它更改 */

# exit /* 退出容器 */

$ docker commit -m="<description>" -a="<author>" <id> <targetName>:<version> /* 提交副本 */

4.2 构建镜像

$ cat Dockerfile /* 创建docker文件 */

FROM    centos:6.7 

MAINTAINER      Fisher "fisher@sudops.com"

RUN     /bin/echo 'root:123456' |chpasswd

RUN     useradd runoob

RUN     /bin/echo 'runoob:123456' |chpasswd

RUN     /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local

EXPOSE  22

EXPOSE  80

CMD     /usr/sbin/sshd -D

$ docker build -t <targetName> <dockerFilePath> /* 创建镜像 */

4.3 设置镜像标签

$ docker tag <image id> <repository name>:<tag> /* 设置标签 */

5 容器连接

5.1 端口映射

$ docker run -d -P training/webapp python app.py /* 使用随机端口 */

$ docker run -d -p 5000:5000 training/webapp python app.py /* 指定主机端口 */

$ docker run -d -p 127.0.0.1:5001:5000 training/webapp python app.py /* 指定IP和端口 */

$ docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py /* 指定udp端口 */

$ docker port <image name> <port> /* 查看主机端口 */

5.2 容器命名

$ docker run -d -P --name <name> training/webapp python app.py /* 容器命名 */

6 文件

6.1 在容器与宿主机之间拷贝文件

$ docker cp --help

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

6.2 挂载数据卷

docker run -v <宿主path>:<容器path> --name <name> <image>:<version>

 

7 说明

本文的命令直接拷贝粘贴执行的话,如果出错,可能是空格格式不对,重新替换一下空格即可。

 

8 批量删除

删除所有已经停止的容器
docker rm $(docker ps -a -q)

删除所有未打 dangling 标签的镜像
docker rmi $(docker images -q -f dangling=true)

删除所有镜像
docker rmi $(docker images -q)

强制删除镜像名称中包含“doss-api”的镜像
docker rmi --force $(docker images | grep doss-api | awk '{print $3}')

9 查看容器的ip

docker inspect -f='{{.Name}} {{.NetworkSettings.IPAddress}} {{.HostConfig.PortBindings}}' $(docker ps -aq)

10 保存与加载

docker save -o file.tar image

docker load -i file.tar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值