【Docker】基本使用
服务
- 启动docker
 
systemctl start docker
- 重启docker
 
systemctl restart docker
- 停止docker
 
systemctl stop docker.socke
systemctl stop docker
- 如果linux重启需要重启docker服务
 
systemctl daemon-reload
systemctl restart docker.service
- 设置中国镜像
 

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxx.xxx.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
镜像
- 查看镜像
 
docker images
- 删除镜像
 
docker rmi IMAGE ID
*ps: 删除镜像(需要先删除容器)
docker ps -a  # 查看容器
docker stop <#id>  # 停止一个或多个容器
docker rm <#id>  # 删除一个或多个容器
docker image ls -a  # 查看镜像
docker rmi <#id>  # 删除一个或多个镜像
- 拉取镜像
 
docker pull jenkins/jenkins
- 运行镜像
 
docker run -d -uroot -p 8888:8080 -p 50000:50000 --name jenkins -v /home/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime jenkins/jenkins
| 命令 | 描述 | 
|---|---|
| -d | 后台运行容器,并返回容器ID | 
| -uroot | 使用 root 身份进入容器,推荐加上,避免容器内执行某些命令时报权限错误 | 
| -p 9095:8080 | 将容器内8080端口映射至宿主机9095端口,这个是访问jenkins的端口 | 
| -p 50000:50000 | 将容器内50000端口映射至宿主机50000端口 | 
| --name jenkins | 设置容器名称为jenkins | 
| -v /home/jenkins_home:/var/jenkins_home | :/var/jenkins_home目录为容器jenkins工作目录,我们将硬盘上的一个目录挂载到这个位置,方便后续更新镜像后继续使用原来的工作目录 | 
| -v /etc/localtime:/etc/localtime | 让容器使用和服务器同样的时间设置 | 
| jenkins/jenkins | 镜像的名称,这里也可以写镜像ID | 
- 查看日志
 
docker logs jenkins
容器
- 查看容器
 
- 此时的状态有 Up About / Exited
 
docker ps -a
- 删除容器
 
- 将 Exited 状态的容器删除
 
docker rm 容器ID
- 启动/重启/停止容器
 
docker start 容器ID
docker restart 容器ID
docker stop 容器ID
- 进入/退出容器
 
docker exec -it 容器ID bash
exit
docker restart 容器ID
查看docker中的xxx容器版本
- 拉取镜像
 
docker pull redis

- 运行镜像
 
docker run -p 6379:6379 -v $PWD/data:/data  -d redis:latest redis-server --appendonly yes --requirepass 123456
	-p 6379:6379 : 将容器的6379端口映射到主机的6379端口
	-v $PWD/data:/data : 将主机中当前目录下的data挂载到容器的/data
	redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置
- 以查看redis版本为例
 
docker exec -it edfb37d82fde redis-server -v


docker-compose
这里以启动一个jenkins为例
- 配置
 
mkdir -p /usr/local/jenkins
cd  /usr/local/jenkins
vim docker-compose.yml
	# docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11
	jenkins
      restart: always
	  image: jenkins/jenkins:2.204.5
	ports:
	  - "8080:8080"
	  - "50000:50000"
	volumes:
	  - ./data:/var/jenkins_hom
- 启动
 
cd /usr/local/jenkin
mkdir -p data  # 注意如果重装jenkins,先删除这个文件夹并重新生成
chmod -R 777 data  # yml中的 volumes对应的映射目录 ./dat
systemctl restart docker  # 如果报错每次修改请重启docker
docker-compose up -d  # 启动jenkins
docker-compose ps  # state的状态为up即启动成功
docker-compose logs -f  # 实时查看启动情况,注意记录初始密码
常用程序看装
jenkins
找没有被弃用并且pull数量大的使用,如下图选择第二个
mysql
- 拉取镜像
 
docker pull mysql:5.7
docker images -a
- 启动镜像
 
docker run --privileged=true -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker ps -a  # 查看是否启动成功
docker logs [CONTAINER ID]  # 如果状态为Exited,查看错误日志
- 进入容器
 
docker exec -it [CONTAINER ID] /bin/bash
  mysql -uroot -p
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'root' WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'rOOt' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    exit;
  exit;
  作者:小魁jking
出处:https://www.cnblogs.com/wangjinkui/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
出处:https://www.cnblogs.com/wangjinkui/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任

        基本使用
    

                
            
        
浙公网安备 33010602011771号