cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33
按 i 进入insert编辑模式
BOOTPROTO=static 启用静态IP地址
ONBOOT=yes 开启自动启用网络连接
IPADDR=192.168.30.100 设置IP地址
NETMASK=255.255.255.0 子网掩码
GATEWAY=192.168.30.2 设置网关
service network restart
ip addr
ping www.baidu.com
显示ping通baidu啦,外网连接成功!!ctr+c退出。
cat /etc/redhat-release
uname -r
docker version
docker info
docker images 或 docker image ls (-a 查看运行和非运行的容器,-q 返回正在运行的容器 id,-qa 返回所有容器的 id)
docker pull 镜像名称
docker rmi 镜像名称
docker rmi -f 镜像名称
docker run 镜像名称 (-p 将宿主机端口和容器端口进行映射,-d 代表后台运行,--name 表示给容器取一个名字,-v 宿主机目录(绝对路径):容器内目录 实现宿主机目录和容器内目录)
docker run --name myhd -dp 9000:8080 hello-docker:1.0
docker ps (-a 显示所有的容器,-q 只显示正在运行的容器)
docker start 容器ID或容器名
docker stop 容器ID或容器名
docker kill 容器ID或容器名
docker run -it redis /bin/bash
docker logs Redis
systemctl restart docker
systemctl status docker
systemctl enable docker
systemctl disable docker
systemctl stop docker
查看文件:cat hello.log
删除文件:rm -rf hello.log
重命名文件: mv xxx xxxx
查看docker中所有容器:docker ps -a
删除全部docker容器: docker rm -f $(docker ps -qa)
构建docker容器(不要忘记最后一个点):docker build -t hello-docker:1.0 .
运行docker容器:docker run --name myhd -dp 9000:8080 hello-docker:1.0
进行docker容器:docker exec -it xxx /bin/bash
查看所有文件:ls -l
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
ll /etc/yum.repos.d
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl start docker
docker version
docker images
docker pull mysql:5.7
docker run --name mysql -dp 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
docker exec -it mysql /bin/bash
mysql -uroot -p
show databases;
create database test;
use test;
create table emp(id int,name varchar(20),depart varchar(20));
insert into emp values(1,'zs','market');
select * from emp;
show variables like 'character%';
create user 'slave'@'%' identified by '123456';
grant replication slave,replication client on *.* to 'slave'@'%';
show grants for 'slave'@'%';
cp -r mysql mysql_master
rm -rf data/ log/
docker run --name mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/log:/var/log/mysql \
-v /root/mysql/conf:/etc/mysql/conf.d \
-dp 3306:3306 \
mysql:5.7
ADD和COPY
两者都是将文件从宿主机拷贝到docker容器里面,ADD更为强大,如果拷贝的是个压缩包会自动解压,但一般常用的COPY
CMD和ENTRYPOINT
两者都是容器启动时执行的命令,不同的是一个是覆盖原有命令,一个是在原有命令上追加
CMD
docker run 之后加的参数,如果是CMD,会直接覆盖掉原有CMD命令,变为参数
//dockerfile
....
CMD ["cd /tmp"]
docker run image //会直接执行cd /tmp命令到tmp目录
docker run image cd /usr //这个命令会将dockerfile中的命令覆盖掉,目录会到usr
//dockerfile
....
ENTRYPOINT ["cd /tmp"]
docker run image //会直接执行cd /tmp命令到tmp目录
docker run image cd /usr //会先cd到tmp,再cd到usr
//情况一
ENTRYPOINT echo "e"
CMD echo "c"
docker run不附加command //输出 e
docker run附加command(echo "hi") //输出 e
//情况二
ENTRYPOINT echo e
CMD ["echo","c"]
docker run不附加command //输出结果: e
docker run附加command(echo "hi")//输出结果: e
- 情况一
ENTRYPOINT ["echo","e"]
CMD echo "c"
docker run不附加command //输出结果: e /bin/sh -c echo c
- 情况二
ENTRYPOINT ["echo","e"]
CMD ["echo","c"]
docker run不附加command //输出结果: e echo c
docker run附加了command:无论CMD使用什么语法,CMD指令会被docker run 中的command覆盖,command作为参数传递给ENTRYPOINT。
//情况一
ENTRYPOINT ["echo","e"]
CMD echo "c"
docker run附加command(echo “hi”) //输出结果: e echo hi
//情况二
ENTRYPOINT ["echo","e"]
CMD ["echo","c"]
docker run附加command(echo “hi”) //输出结果: e echo hi