初步安装
yum update -y
yum -y install docker
systemctl start docker
设置来源镜像
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://aj2rgad5.mirror.aliyuncs.com"]
}
run命令配置参数运行环境, 拉取镜像
docker run [options] image[:tag|digest] [command] [ags...]
示例:
docker run -d --name user_center \
--restart=always \
#映射到宿主机目录,这样我们就直接在/home/wwwroot/user_center开发
-v /home/wwwroot/user_center:/hyperf-skeleton \
# 9501提供http服务,9504提供json-rpc服务
-p 9501:9501 -p 9504:9504 \
-it
--entrypoint /bin/sh \
#指定下载的镜像环境
hyperf/hyperf:7.3-alpine-cli
options参数
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用; //相当于在本地添加了一个系统
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-w, --workdir="" 指定容器的工作目录
-c, --cpu-shares=0 设置容器CPU权重,在CPU共享场景使用
-e, --env=[] 指定环境变量,容器中可以使用该环境变量
-m, --memory="" 指定容器的内存上限
-P, --publish-all=false 指定容器暴露的端口
-p, --publish=[] 指定容器暴露的端口
--name="" 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
-h, --hostname="" 指定容器的主机名
-v, --volume=[] 给容器挂载存储卷,挂载到容器的某个目录
--volumes-from=[] 给容器挂载其他容器上的卷,挂载到容器的某个目录
--cap-add=[] 添加权限,权限清单详见:[http://linux.die.net/man/7/capabilities](http://linux.die.net/man/7/capabilities)
--cap-drop=[] 删除权限,权限清单详见:[http://linux.die.net/man/7/capabilities](http://linux.die.net/man/7/capabilities)
--cidfile="" 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法
--cpuset="" 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU
--device=[] 添加主机设备给容器,相当于设备直通
--dns=[] 指定容器的dns服务器
--dns-search=[] 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件
--entrypoint="" 覆盖image的入口点
--env-file=[] 指定环境变量文件,文件格式为每行一个环境变量
--expose=[] 指定容器暴露的端口,即修改镜像的暴露端口
--link=[] 指定容器间的关联,使用其他容器的IP、env等信息
--lxc-conf=[] 指定容器的配置文件,只有在指定
--exec-driver=lxc时使用
--net="bridge" 容器网络设置: bridge 使用docker daemon指定的网桥 host //容器使用主机的网络 container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源 none 容器使用自己的网络(类似--net=bridge),但是不进行配置
--privileged=false 指定容器是否为特权容器,特权容器拥有所有的capabilities
--restart="no" 指定容器停止后的重启策略: no:容器退出时不重启 on-failure:容器故障退出(返回值非零)时重启 always:容器退出时总是重启
--rm=false 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)
--sig-proxy=true 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理
run 运行容器时, 将容器内部文件与外部文件夹进行映射
目的:
- docker容器不保持任何数据
- 重要数据请使用外部卷存储(数据持久化)
- 容器可以挂载真实机目录或共享存储为卷
- 配置文件等映射外部, 由外部进行直接修改
docker create + docker start = docker run
create参数和run参数基本一直。
docker create -it -p [外部端口]:[容器端口] -v /tmp/skeleton:/hyperf-skeleton --privileged --name [容器名] [镜像id/名] /bin/bash
使用docker镜像创建一个容器, 但是不启动它, 镜像如果在本地没有则在云端仓库拉取
docker start [容器id/名]
docker run -v /tmp/skeleton:/hyperf-skeleton
外部/tmp/skeleton与容器内的hyperf-skeleton 相关联, run命令是create和start的结合。
docker进入容器内部进行配置
使用docker exec进入Docker容器
接下来我们使用该命令进入一个已经在运行的容器
查看运行中的容器
docker ps
使用镜像id运行容器
docker start 5ec1b41ea352
以bash 命令模式进入运行中的容器
docker exec -it 5ec1b41ea352 /bin/bash
普通的进入容器
docker attach 5ec1b41ea352

退出或者关闭容器
#退出
exit
#关闭
docker stop [image name]
#重启
docker start [image name]
退出时保持容器运行
退出时,使用[ctrl + D],这样会结束docker当前线程,容器结束,可以使用[ctrl + P][ctrl + Q]退出而不终止容器运行
镜像容器运行后,并在容器内安装 Composer
先下载 Composer 进 docker 容器内
wget https://mirrors.aliyun.com/composer/composer.phar
修改执行权限
此操作是为了解决 Composer 不允许 root 权限执行的限制
同时为切换用户时,可以直接操作
生产环境下不推荐 777 授权方式
chmod -R 777 ./composer.phar
移动 composer 至 bin 目录下面,并且改名为 composer
mv composer.phar /usr/local/bin/composer
将 Composer 镜像设置为阿里云镜像,加速国内下载速度
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
composer安装提示内存不足
使用以下命令启动交换区1M
/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1
网友评论