Docker安装及使用

docker-toolbox下载列表http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

下载并安装

安装docker后启动
问题:
在这里插入图片描述
解决方法:修改bash.exe路径(右键-属性)
在这里插入图片描述
docker启动完成界面:
在这里插入图片描述

运行:docker run hello-world 没有会先下载镜像
在这里插入图片描述

运行: docker run -it ubuntu bash 进入到ubuntu系统,没有会下载

在这里插入图片描述
运行:docker run -it ubuntu /bin/echo “hello world” 直接输出hello world
在这里插入图片描述
各个参数解析:

docker: Docker 的二进制执行文件。

run:与前面的 docker 组合来运行一个容器。

ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,
如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。

/bin/echo "Hello world": 在启动的容器里执行的命令

以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo “Hello world”,然后输出结果。

在docker中进入到ubuntu系统: 然后就可以用linux命令

docker run -it ubuntu bash
docker run -i -t ubuntu:15.10 /bin/bash

docker exec -it containerId 进入已经启动的容器中

各个参数解析:

-t:在新容器内指定一个伪终端或终端。

-i:允许你对容器内的标准输入 (STDIN) 进行交互。

在容器中运行命令 cat /proc/version和ls分别查看当前系统的版本信息和当前目录下的文件列表

在这里插入图片描述-------------------------------------------------------------------------------------------------------------------

docker 命令集

Docker 镜像使用

查找镜像:docker search httpd
从 Docker Hub 网站来搜索镜像,Docker Hub 网址为: https://hub.docker.com/

下载镜像: docker pull ubuntu:13.10
本地镜像列表:docker images

构建镜像:docker build
从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

创建一个 Dockerfile 文件:

runoob@runoob:~$ cat Dockerfile 
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

然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。

runoob@runoob:~$ docker build -t runoob/centos:6.7 .
Sending build context to Docker daemon 17.92 kB
Step 1 : FROM centos:6.7
 ---> d95b5ca17cc3
Step 2 : MAINTAINER Fisher "fisher@sudops.com"
 ---> Using cache
 ---> 0c92299c6f03
Step 3 : RUN /bin/echo 'root:123456' |chpasswd
 ---> Using cache
 ---> 0397ce2fbd0a
Step 4 : RUN useradd runoob
......

参数说明:

-t :指定要创建的目标镜像名

. :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

查看容器列表:docker ps 或者 docker ps -a
docker container ls:默认只列出正在运行的容器,-a 选项会列出包括停止的所有容器。
查看镜像列表:docker images在这里插入图片描述

进入容器docker run -it image_id
停止容器docker stop container id
容器列表docker ps -a 已停止的和当前在运行的 docker ps 只是在运行的
启动容器
docker start container_id 启动停止的容器
docker restart container_id 重新启动

进入在后台运行的容器docker exec -it container_id /bin/bash
docker exec -it 775c7c9ee1e1 /bin/bash (容器id)
删除容器docker rm container_id (正在运行的容器不能删除,先停止再删除)
删除镜像docker rmi image-id
删除镜像时报错:
在这里插入图片描述
由于image被某个container引用(运行),如果不将这个引用的container删除,image肯定是不能被删除

docker ps -a 查看所有引用关系
在这里插入图片描述
停止容器,删除容器,删除镜像
docker rm f58dd4d607ab
docker rmi a2a15febcdf3

docker ps 格式化显示
在这里插入图片描述
比如:docker ps -a --format “table {{.ID}}\t{{.Command}}\t{{.Image}}”
在这里插入图片描述
清理容器:

docker system prune可对空间进行自动清理

已停止的容器
未被任何容器使用的卷
未被任何容器所关联的网络
所有悬空的镜像

docker system prune -a -f 会彻底清除所有容器包含Image

docker system prune后可以加额外的参数,如:
docker system prune -a : 一并清除所有未被使用的镜像和悬空镜像。
docker system prune -f : 用以强制删除,不提示信息。
docker image prune:删除悬空的镜像。

docker container prune:删除无用的容器。
      --默认情况下docker container prune命令会清理掉所有处于stopped状态的容器
      --如果不想那么残忍统统都删掉,也可以使用--filter标志来筛选出不希望被清理掉的容器。例子:清除掉所有停掉的容器,但24内创建的除外:
      --$ docker container prune --filter "until=24h"  

docker volume prune:删除无用的卷。
docker network prune:删除无用的网络

docker volume ls:列出数据卷。

docker network ls:列出 network。

docker info:显示系统级别的信息,比如容器和镜像的数量等。

docker inspect 来查看容器或者镜像的详细信息
docker inspect image_id
docker inspect container_id

删除正在运行的容器报错
Error response from daemon: You cannot remove a running container 8269215dfdef42
ec0533ce622c62db0ca314fb29a83deae2ee124a93b5914d36. Stop the container before at
tempting removal or force remove

先停止然后在删除
docker stop 8269215dfdef42
docker rm 8269215dfdef42


设置共享文件 E:\workspacephp\hyperf-skeleton 对应名称wx_server_hyperf
1,通过虚拟机(Oracle VM VirtualBox)设置共享文件也就是本地代码文件夹
2,重启虚拟机:docker-machine restart
3,输入:docker-machine ssh default
终端显示docker@defualt:~$
4,mount 显示共享目录 (可以查看设置的共享目录是否生效)
5,cd /wx_server_hyperf(设置的共享文件夹名称)

在这里插入图片描述hyperf项目

# 下载并运行 hyperf/hyperf 镜像,并将镜像内的项目目录绑定到宿主机的 /tmp/skeleton 目录
docker run -v /tmp/skeleton:/hyperf-skeleton -p 9501:9501 -it --entrypoint /bin/sh hyperf/hyperf:7.2-alpine-cli

# 镜像容器运行后,在容器内安装 Composer
wget https://github.com/composer/composer/releases/download/1.8.6/composer.phar
chmod a+x composer.phar
mv composer.phar /usr/local/bin/composer
# 将 Composer 镜像设置为阿里云镜像,加速国内下载速度
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer

# 通过 Composer 安装 hyperf/hyperf-skeleton 项目
composer create-project hyperf/hyperf-skeleton

# 进入安装好的 Hyperf 项目目录
cd hyperf-skeleton
# 启动 Hyperf
php bin/hyperf.php start

关闭再次进入: 
-p 9501:9501  指定端口映射,格式为:主机(宿主)端口:容器端口 
-P: 随机端口映射,容器内部端口随机映射到主机的高端口

运行容器: docker run -v /wx_server_hyperf:/hyperf-skeleton -p 9501:9501 -it --entrypoint /bin/sh hyperf/hyperf:7.2-alpine-cli

docker容器中设置hosts
1,通过命令,放到–name之后
–add-host=www.baidu.com:192.16.2.23

docker run -p 9501:9501 -v /wx_server_hyperf:/hyperf-skeleton --name container_hyperf --add-host www.baidu.com:192.16.2.23 hyperf/hyperf php /hyperf-skeleton/bin/hyperf.php start

2,etc/hosts修改。每次启动容器就会重置

容器和本地代码相互复制:

从容器copy到本地:
docker cp mynginx:/etc/nginx/conf.d/default.conf /wx_server_hyperf/xxxx.conf​

从本地copy到容器:
docker cp/wx_server_hyperf/xxxx.conf​ ​ mynginx:/etc/nginx/conf.d/default.conf

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值