Docker安装及常用命令

docker常用命令

docker操作命令

systemctl start docker          启动docker服务
systemctl stop docker          停止docker服务
systemctl restart docker         重启docker服务
systemctl enable docker         设置开机启动
sudo systemctl status docker           查看docker启动状态
sudo docker -v         查看docker版本
docker network ls         查看docker网络列表
docker volume ls         查看docker持久化存储情况

image操作命令

docker login --username=lucifer_ztl registry.cn-hangzhou.aliyuncs.com         登录远程仓库
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/lucifer-k8s/lucifer-k8s-repository:[镜像版本号]         给镜像打标签
docker push registry.cn-hangzhou.aliyuncs.com/lucifer-k8s/lucifer-k8s-repository:[镜像版本号]         推送镜像到远程仓库
docker images          查看docker镜像
docker pull mysql:5.7          拉取mysql5.7版本的镜像
docker run image         运行镜像

# -d后台启动,--name设置容器名称,-p端口映射,-v将容器内的数据持久化保存在宿主机上/root/data/mysql位置,-e添加环境变量设置密码
docker run -d --name mysql -p 3306:3306 -v /root/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7

docker run -d --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --privileged mysql:5.7         运行mysql5.7版本镜像并创建容器,需指定密码
docker exec -it         容器id bash 进入某个容器
docker image rm [imageid]         根据镜像id删除某个镜像
docker rmi -f [imageid]         根据镜像id删除某个镜像
docker rmi -f $(docker image ls)         删除所有镜像

容器操作命令

docker start 容器id/容器名称         根据容器id或者名称启动容器
docker exec -it 容器id bash         进入某个容器
service mysql status         查看mysql状态【前提是先进入mysql容器】
service mysql start         启动mysql【前提是先进入mysql容器】
mysql -uroot -p         连接mysql

mysql> create database testdb; #创建数据库testdb
mysql> show databases; #查看数据库列表
mysql> use testdb; #使用数据库testdb
mysql> show tables; #查看数据库中的表
mysql> create table `user`(
    ->   `id` bigint(20) NOT NULL,
    ->   `name` varchar(100) NOT NULL,
    ->   `email` varchar(200) DEFAULT NULL,
    ->   `address` varchar(255) DEFAULT NULL,
    ->   `phone` varchar(20) DEFAULT NULL,
    ->   PRIMARY KEY(`id`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

mysql> insert into `user`(`id`,`name`,`email`,`address`,`phone`) values(1,'Lucifer','xxx123456@qq.com','xian','123456789');
mysql> select * from user;
+----+---------+------------------+---------+-----------+
| id | name    | email            | address | phone     |
+----+---------+------------------+---------+-----------+
|  1 | Lucifer | xxx123456@qq.com | xian    | 123456789 |
+----+---------+------------------+---------+-----------+
1 row in set (0.00 sec)

mysql> 

docker ps         查看运行中的容器
docker ps -a         查看所有容器
docker ps -aq         查看所有容器
docker rm 容器id    删除某个容器
docker rm -f $(docker ps -a)         删除所有容器
docker stop 容器id/容器名称         停止某个容器
docker top 容器id/容器名称         列出容器中运行进程
docker rename 旧容器名称 新容器名称         修改容器名称
docker logs 容器id/容器名称         查看容器服务的实时日志
docker logs --tail 20 容器id/容器名称         查看容器服务后20行日志
docker inspect 容器id         查看容器详细信息
docker stats 容器id         查看容器详情(CPU占用、内存使用、IO数)

docker数据持久化命令

  1. -v mysql-volume:/var/lib/mysql        通过volume将物理机/var/lib/docker/volumes/mysql-volume/_data目录和容器虚拟机/var/lib/mysql目录绑定
  2. -v /root/data/mysql:/var/lib/mysql          直接将物理机/root/data/mysql目录和容器虚拟机/var/lib/mysql目录绑定

docker volume ls         查看docker持久化存储情况
docker exec -it mysql bash         进入mysql容器中
ls /var/lib/mysql         可以在这个目录下查看到mysql的数据
docker volume inspect volume_name         可以查看到物理机中的目录
ls /var/lib/docker/volumes/eefab808edf91781c5605f4d8c1e42074af848c8ebb112305fcf2a4d8769a663/_data         可以发现物理机目录下和mysql容器/var/lib/mysql目录下内容相同
docker volume create mysql-volume         创建volume
docker run -d --name mysql5.7 -v mysql-volume:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root mysql:5.7         创建容器并使用自定义的volume
ls /var/lib/docker/volumes/mysql-volume/_data         查看自定义volume对应的物理机目录下内容
-v mysql-volume:/var/lib/mysql就等同于在Dockerfile中定义的VOLUME命令

验证持久化效果:

mysql> create database db_test;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db_test            |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> exit
Bye
root@29d465c7bc45:/# exit
exit
[root@localhost ~]# docker exec -it mysql5.7 bash
root@29d465c7bc45:/# ls /var/lib/mysql
auto.cnf    ca.pem	     client-key.pem  ib_buffer_pool  ib_logfile1  ibtmp1  performance_schema  public_key.pem   server-key.pem
ca-key.pem  client-cert.pem  db_test	     ib_logfile0     ibdata1	  mysql   private_key.pem     server-cert.pem  sys
root@29d465c7bc45:/# exit
exit
[root@localhost ~]# ls /var/lib/docker/volumes/mysql-volume/_data
auto.cnf    ca.pem           client-key.pem  ib_buffer_pool  ib_logfile0  ibtmp1  performance_schema  public_key.pem   server-key.pem
ca-key.pem  client-cert.pem  db_test         ibdata1         ib_logfile1  mysql   private_key.pem     server-cert.pem  sys
[root@localhost ~]# 

防火墙相关命令

systemctl  stop firewalld          关闭防火墙
systemctl disable firewalld         禁止开机启动防火墙
systemctl status  firewalld          查看是否关闭防火墙

搭建jenkins

docker pull jenkins         拉取jenkins镜像
docker tag jenkins myjenkins         给镜像重命名
mkdir -p /opt/jenkins 创建目录/opt/jenkins
chmod 777 /opt/jenkins         对文件夹进行授权
docker run -d --name jenkins -p 10240:8080 -v /opt/jenkins:/var/jenkins_home jenkins        根据jenkins镜像创建容器并启动
docker start jenkins         启动jenkins容器
docker exec -it jenkins bash         进入jenkins容器
cat /var/jenkins_home/secrets/initialAdminPassword         查看jenkins admin password

docker 安装及修改docker根目录

1、centos7简单安装docker

查看Linux服务器的系统是CentOS7.4的
[root@VM_82_178_centos ~]# cat /etc/RedHat-release 
CentOS Linux release 7.4.1708 (Core)

#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
#添加Docker软件包源
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
#docker yum源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#上面为官方源,下面为阿里源,二选一 
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#安装Docker CE
yum install docker-ce -y
#启动docker
systemctl start docker
#设置开机启动
systemctl enable docker
#查看Docker信息
docker info

2、设置docker数据根目录

通过 docker info 命令来进行查看Docker Root Dir值,可以发现Docker服务默认的数据目录Docker Root Dir/var/lib/docker

#确保停止Docker服务
systemctl stop docker.service

将原先目录下所有的文件和目录拷贝到新目录下
cp -rf /var/lib/docker/* /mnt/soft/docker # 该路径为你指定的大容量空间路径

修改/etc/docker/daemon.json文件值,文件不存在需手动创建
vim /etc/docker/daemon.json
# 新增以下内容
{
"data-root": "/mnt/soft/docker"
}

启动docker服务
systemctl start docker.service

验证Docker Root Dir 的值是否已修改为/mnt/soft/docker

3、centos7安装docker engine

(1)卸载之前的docker

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

(2)安装yum-utils,设置docker仓库

sudo yum install -y yum-utils
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

(3)查看可以安装的版本

yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64            3:20.10.9-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.8-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.7-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.7-3.el7                    @docker-ce-stable
docker-ce.x86_64            3:20.10.6-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.5-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.4-3.el7                    docker-ce-stable 
docker-ce.x86_64            3:20.10.3-3.el7                    docker-ce-stable

(5)安装最新或指定版本

安装最新版本:

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

安装指定版本20.10.7:

sudo yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io docker-compose-plugin

(6)启动docker并设置为开机启动

sudo systemctl start docker && sudo systemctl enable docker

(7)测试docker安装是否成功

sudo docker run hello-world

(8)配置镜像加速器

设置方式参照:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

4、Docker安装tomcat和mysql

(1)tomcat:8.0

# 拉取镜像:
docker pull tomcat:8.0
# 根据镜像创建容器:
docker run -d --name tomcat01 -p 8088:8080 tomcat:8.0

(2)mysql

# -d设置后台启动, --name给容器命名, -p端口映射, -e添加环境变量
docker run -d --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=jack666 --
privileged mysql:5.7

镜像、容器操作

1、将jar包制作镜像

(1)创建一个Spring Boot项目,写一个controller

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello Docker!!!";
    }
}

注意在项目的pom.xml中一定要加下面配置,否则启动jar镜像会报错:no main manifest attribute

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                </configuration>
            </plugin>
        </plugins>
    </build>

(2)mvn clean package,并在target下找到jar包,如"springboot-demo2-1.0-SNAPSHOT.jar"

(3)上传"springboot-demo2-1.0-SNAPSHOT.jar"到centos,并创建Dockerfile文件

FROM openjdk:8
COPY springboot-demo2-1.0-SNAPSHOT.jar sb-jar-image.jar
CMD ["java","-jar","sb-jar-image.jar"]

或者

# 基础镜像使用java
FROM java:8
#将jar包添加到容器中并更名为: sb-jar-image.jar
ADD   springboot-demo2-1.0-SNAPSHOT.jar   sb-jar-image.jar
#运行jar包
RUN bash -c 'touch sb-jar-image.jar'
ENTRYPOINT ["java","-jar","sb-jar-image.jar"]
#暴露端口
EXPOSE 8080

(4)基于Dockerfile构建镜像并查看

docker build -t sb-jar-image .
docker images

(5)基于image创建container

docker run -d --name sb-jar -p 8080:8080 sb-jar-image

(6)查看启动日志:docker logs sb-jar

(7)宿主机上访问curl localhost:8080/hello

[root@localhost ~]# curl localhost:8080/hello
Hello Docker!!![root@localhost ~]# 

或者主机浏览器访问虚拟机ip:8080/hello

2、阿里镜像仓库

阿里镜像仓库地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

(1)进入个人实例:https://cr.console.aliyun.com/cn-hangzhou/instance/dashboard

(2)创建命名空间,比如 lucifer-k8s

(3)在centos上登录

[root@localhost ~]# sudo docker login --username=lucifer_ztl registry.cn-hangzhou.aliyuncs.com
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

(4)给image打tag

[root@localhost ~]# sudo docker tag 84ea3746c8e6 registry.cn-hangzhou.aliyuncs.com/lucifer-k8s/lucifer-k8s-repository:v1.0
[root@localhost ~]# docker images
REPOSITORY                                                             TAG       IMAGE ID       CREATED         SIZE
sb-jar-image                                                           latest    84ea3746c8e6   2 days ago      678MB
registry.cn-hangzhou.aliyuncs.com/lucifer-k8s/lucifer-k8s-repository   v1.0      84ea3746c8e6   2 days ago      678MB
openjdk                                                                8         e24ac15e052e   11 months ago   526MB
hello-world                                                            latest    feb5d9fea6a5   14 months ago   13.3kB
java      

(5)推送镜像到镜像仓库

[root@localhost ~]# sudo docker push registry.cn-hangzhou.aliyuncs.com/lucifer-k8s/lucifer-k8s-repository:v1.0
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/lucifer-k8s/lucifer-k8s-repository]
0634aee8ab8a: Pushed 
a0d2245cc87f: Pushed 
35c20f26d188: Pushed 
c3fe59dd9556: Pushed 
6ed1a81ba5b6: Pushed 
a3483ce177ce: Pushed 
ce6c8756685b: Pushed 
30339f20ced0: Pushed 
0eb22bfb707d: Pushed 
a2ae92ffcd29: Pushed 
v1.0: digest: sha256:55044767d6a5abcf62595732449f3dafb3cc7ce09f5ac222f37e56d915211003 size: 2424

(6)下载镜像并运行

[root@localhost ~]# docker pull registry.cn-hangzhou.aliyuncs.com/lucifer-k8s/lucifer-k8s-repository:v1.0
[root@localhost ~]# docker run -d --name docker01 -p 8081:8081 registry.cn-hangzhou.aliyuncs.com/lucifer-k8s/lucifer-k8s-repository:v1.0

mysql高可用集群保证数据一致性:

(1)从库连接主库,(2)主库dump线程获取binlog发送给从库,(3)从库IO线程写数据到relay log,(4)sql线程读取relay log执行sql更新数据到从库

PXC

Percona Xtradb Cluster

多主+同步复制+强一致性

筛选 -> 网上填表 -> 笔试(算法,选择) -> 面试(公司介绍+个人介绍+架构设计+基础)  -> 体检

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux Docker是一个开源的容器管理平台,它使用户能够在虚拟化环境中运行和部署应用程序。下面是关于Linux Docker安装及基本命令的解释: 1. 安装:在Linux中安装Docker需要运行一系列的命令。请访问官方网站(https://www.docker.com/)查找适合您的操作系统的安装程序。安装完成后,您需要配置Docker,将Docker服务启动,并将它与操作系统一起启动。 2. 启动:启动Docker容器可以使用“docker run”命令。这条命令会将您的容器启动,并返回一个容器ID号。如果您想更加详细地了解容器信息,您可以使用“docker ps”命令查询关于Docker容器的信息。 3. 停止:停止运行Docker容器可以使用以下命令: - Docker stop [容器 ID]:停止Docker容器。 - Docker rm [容器 ID]:删除Docker容器。 4. 构建镜像:当您需要一种特定的应用程序时,您可以构建一个Docker映像。这可以通过“docker build”命令来实现,您需要提供一个Dockerfile,它是用于指定映像内容的文件。 5. 导入和导出:您可以将您的Docker容器导入或者导出。此操作可以实现Docker容器的迁移或者备份。命令如下: - 导入:docker import [容器名称][路径或URL]。 - 导出:docker save -o [文件名].tar [容器名称]。 总之,上述是关于Linux Docker安装及基本命令的解释。更多有关Docker的信息,请访问官方文档(https://docs.docker.com/)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值