谨以此文,纪念匆匆忙忙学习docker之路。


安装可以用yum安装,如果安装不成功,可能是本地时间设置不正确导致。
//拉取镜像
docker pull NAME[:TAG]
//查看镜像信息
docker images
docker inspect NAME[:TAG] //查看docker详细信息
docker history NAME[:TAG] //查看镜像各层历史
//搜寻
docker search --filter=is-official=true nginx
//删除和清理
docker rmi IMAGE_ID
docker image prune //清洗临时镜像文件
//创建镜像:3种方式
docker commit -a 'author' -m 'message' CONTAINER_ID Image_Name //通过容器创建
cat ubuntu-18.04-x86_64-minimal.tar.gz | docker import - ubuntu:18.04 //导入方式
docker build -f docker-file Image_Name //通过docker-file进行创建
//存出和载入镜像
docker save -o ubuntu_18.04.tar ubuntu:18.04 //存出镜像
docker load -i ubuntu_18.04.tar //导入镜像
//上传镜像
docker push NAME:TAG镜像由一层一层的文件系统组成,称为:UnionFS
优点:共享资源。很多资源都是相同的,对于unionFS,docker只需要下载一份。
//创建容器
docker create -it ubuntu:latest
//创建&&运行容器; i交互,t:伪终端
docker run -it ubuntu:latest /bin/echo 'hello world'
//守护进程
docker run -d ubuntu:latest
//查看容器
docker ps
//终止容器
docker stop CONTAINER_ID //先发送SIGTERM信号,10s后发送SIGKILL信号
docker kill CONTAINER_ID //直接发送SIGKILL信号杀死容器
//启动/重启容器
docker start CONTAINER_ID
docker restart CONTAINER_ID
//进入容器
docker exec -it CONTAINER_ID
//删除容器
docker rm CONTAINER_ID
//导出容器
docker export CONTAINER_ID > export_docker.tar
//导入容器
cat export_docker.tar | docker import - test/ubuntu:v1.0 //生成的是镜像docker hub //官方
docker pool //国内专业docker社区
注册本地仓库
docker run -d -p 5000:5000 registry //创建本地仓库//创建一个数据卷
docker run -d -v /dbdata --name dbdata ubuntu
//挂载主机目录作为数据卷
docker run -d -v ~/tmp:/var CONTAINER_ID //挂载一个数据卷
//多容器挂载数据卷容器,共享数据
docker run -d --volumes-from dbdata --name db1 ubuntu
docker run -d --volumes-from dbdata --name db2 ubuntu
//数据卷容器备份
docker run --volumes-from dbdata -v ${pwd}:/backup --name worker ubuntu
tar cvf /backup/backup.tar /dbdata
//恢复则相反//映射端口
docker run -d -P redis //主机的49000~49900任意一个端口映射到容器内部
docker run -d -p 6379:6379 redis //指定端口
//建立链接
docker run -d --name db mysql //先创建一个mysql容器,等待被链接
docker run -d --name Web --link db:db ubuntu创建镜像 (最重要的肯定是Dockerfile基本语法了)
docker build Dockerfile 关键字:
启动redis
docker run -p 6379:6379 --name redis
-v /home/wangyunlong.1995/redis/data:/data
-v /home/wangyunlong.1995/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
-d dcf9ec9265e0
redis-server /usr/local/etc/redis/redis.conf
--appendonly yes启动mysql
docker run -p 3306:3306 --name mysql
-v /home/wangyunlong.1995/mysql/conf:/etc/mysql/conf.d
-v /home/wangyunlong.1995/mysql/logs:/logs
-v /home/wangyunlong.1995/mysql/data:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD 123456
-d d435eee2caa5备份数据
docker exec 870e134ef76b
sh -c
'exec mysqldump --all-databases -uroot -p"123456"' >
/home/wangyunlong.1995/mysql01.sql//busybox 包含了很多工具的一个工具包,常见的linux指令都有。
docker pull busybox
//Debian和Ubuntu都是当前流行的 Debian系 服务器操作系统
docker search -s 10 ubuntu
//Centos和Fedora都是基于 Rethat 的Linux发行版。
//安装openssh-server
apt-get install openssh-server
//启动
mkdir -p /var/run/sshd
/usr/sbin/sshd -D &
//修改SSH服务的安全登录配置
sed -ri 's/session required ...' /etc/pam.d/sshd
//添加公钥
mkdir root/.ssh
vi /root/.ssh/authorized_keys
//再来个启动脚本run.sh即可
//退出commit
docker commit CONTAINER_ID sshd:ubuntu//自己看吧创建LAMP镜像并运行(Linux + Apache + MySQL + PHP)
默认情况下,容器内的MySQL提供了root账户和admin账户,其中root账户无需密码,但只允许本地访问。
本章介绍了MySQL与MongoDB的使用,具体看书吧。
各种语言,自己看书吧。
docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry方式一:
通过端口映射方法实现利用外部网络进行构建
方式二:
通过Ambassador容器解决跨主机的集群构建问题。
docker images //查看所有镜像
docker inspect image_id //查看每层信息
docker history image_id //查看镜像历史
docker ps //查看正在运行的容器
docker run [-d] [-it] image_id //启动容器;-d:守护进程启动
docker run [-d] [-it] repo:tag // -it:交互方式
docker run -it elasticsearch:latest /bin/bash //指定docker启动bash
docker exec -it container_id /bin/bash
docker run -d -p 8200:9200 -p 8300:9300 elasticsearch //暴露端口
-v ‘pwd’:/var/lib/postgres/data //docker容器挂载参数
//容器相关操作
docker restart container_id
docker stop container_id
docker kill container_id
docker commit container_id //打包成镜像
//镜像相关操作
man docker pull
docker search redis //从dockerhub上搜索redis镜像
docker pull redis //拉取
docker push redis //上传
docker save //导出镜像到文件
docker load //从文件中加载来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3157076/ ,如需转载,请注明出处,否则将追究法律责任。