title: docker入门
tags:
安装步骤
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 # 继承卷,用于实现数据共享
每条保留字必须为大写且必须存在参数,指令为从上倒下执行,每个指令都会创建一个镜像
ENV MY_PATH /use/mytest -> WORKDIR $MY_PATHFROM 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
原文:https://www.cnblogs.com/WheelCode/p/14084918.html