首页 > 其他 > 详细

docker入门

时间:2020-12-04 14:31:18      阅读:30      评论:0      收藏:0      [点我收藏+]

title: docker入门
tags:

  • docker
    categories:
  • docker
    abbrlink: 37956
    date: 2020-08-29 18:32:34

docker入门

docker安装

安装步骤

yum install -y epel-release
yum install -y docker-io
/etc/sysconfig/docker
// 7
yum install -y yum-utils device-mapper-persistent-data lvm2

systemctl daemon-reload
systemctl restart docker
{
  "registry-mirrors": ["https://c0iennz9.mirror.aliyuncs.com"]
}

常用命令(本地)

docker images -a显示所有镜像 -q查询id
--digests 显示摘要信息 --no-trunc显示完整的镜像信息
docker search -s 查看star大于某值的镜像
--automated
docker pull xxx xxx 可单个可多个删除 -f强制删除
# docker rmi -f ${docker images -q}
docker run -it xxx   -i表示交互 -t表示伪终端 --name newname oldname表示起别名 -d守护(后台运行) -p 8080:8080 端口映射 -P表示随机分配(需要在ps里面看端口)
   使用exit停止 ctrl+P+Q退出不停止
   停了之后开启是 start
docker ps 列出当前运行的所有容器 -a所有的(包括历史) -l上次 -n xx 上几次的
start stop restart kill
docker rm删除运行的实例(rmi为删除对应的镜像,必须先删除所有实例)

# docker ps -a | grep hello-world | awk ‘{print $1}‘ | xargs docker rm
#  docker run -d hello-world /bin/sh -c ‘while true;do echo hello;sleep 3;done‘
docker logs -t -f --tail
#查看容器内进程
docker top id
docker inspect id
#重新进入已启动的容器内
docker attach id
docker exec id your_want_commands(run in repo) 可以用-it 等run命令
# docker exec -it id /bin/bash
docker cp 拷贝文件  docker cp id:/tmp/filename /targetpath/targetfile

常用命令(上传)

docker commit -a="author" -m="commit message" id new_name:tagname
# 文件映射,两边数据共享(即便容器关闭也共享)
docker run -it -v /host/filepath:/container/filepath id
# 权限相关操作暂无,后续补充
sudo docker run -itd -p 3308:3306  --privileged --name myCentos centos   /usr/sbin/init

dockerFile

docker build -f /home/docker/dockerfile-test -t mycentos .
可选:--privileged=true
--volumes-form origin_container # 继承卷,用于实现数据共享

每条保留字必须为大写且必须存在参数,指令为从上倒下执行,每个指令都会创建一个镜像

  • FROM scratch(最源镜像)
  • MAINTAINER 作者和镜像描述
  • RUN 构建时的命令
  • EXPOSE 开放的端口号
  • WORKDIR 默认终端的登陆目录,一个落脚点
  • ENV 环境变量 ENV MY_PATH /use/mytest -> WORKDIR $MY_PATH
  • ADD 与COPY ,ADD包括解压缩功能
  • VOLUME 创建容器卷
  • CMD 指定运行命令,只有一个生效,且会被docker run里面的参数替换
  • ENTRYPOINT 会在docker run追加
  • ONBULID 被继承的dockerfile,父镜像在被子镜像继承后,父镜像的ONBULID会被触发
  • USER
FROM centos
ENV MY_PATH /tmp
WORKDIR $MY_PATH
RUN yum -y install vim
EXPOSE 80
CMD /bin/bash
# docker history images_id
docker build -f dockerfile_path -t images_name .

修改mysql默认路径
为了方便日后管理,以及初始化数据库,重新设置mysql的data路径

mkdir  -p /home/data
mkdir  -p /home/logs
chown -R mysql:mysql /home/data
chown -R mysql:mysql /home/logs
chmod -R 755 /home
chmod -R 755 /home/data
chmod -R 755 /home/logs
1234567

4、修改mysql配置文件

cd /etc/mysql/
vi my.cnf
12

配置文件中在[mysqld]下增加

[mysqld]
datadir=/home/data
log-error=/home/logs/error.log
lower_case_table_names=1

注意:该操作完成后千万不要重启docker,否则将无法启动

5、重新初始化数据库

/usr/sbin/mysqld --user=mysql --lower-case-table-names=1 --initialize-insecure --basedir=/usr/local/mysql --datadir=/home/data

这里要等待一段时间
初始化完成后可以查看日志,主要默认的root密码为空。

vi /home/logs/error.log

该步骤完成后,重启docker,如果没有失败说明设置已经生效。

show variables like ‘%table_names‘

新增用户
由于默认初始化的’root’@‘localhost’ 用户是不能远程访问的。
如果想创建一个远程访问的root用户可以使用创建语句进行创建

mysql> CREATE USER ‘root‘@‘%‘ IDENTIFIED BY ‘密码‘;
mysql> GRANT ALL ON *.* TO ‘root‘@‘%‘  WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
#备份数据库
docker exec 49ed5fefc54e mysqldump --all-databases  -u root -p123456 > mysql.sql

docker入门

原文:https://www.cnblogs.com/WheelCode/p/14084918.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!