我想为Amazon ECR创建docker镜像。
但import React, { Component} from 'react';
import {Image, Platform, StyleSheet, Text, View, Button} from 'react-native'
import { AsyncStorage } from "react-native"
export default class StorageDemo extends Component{
constructor(props){
super(props)
AsyncStorage.setItem("visitTimes", 100)
this.state = {
isLoaded: false,
visitTimes: 0
}
}
readData = async () => {
try{
const result = await AsyncStorage.getItem("visitTimes")
this.setState(
{
visitTimes: result,
isLoaded: true
}
)
console.info("== loaded, this.state: ")
}catch(error){
console.error(error)
}
}
render() {
this.readData()
if(this.state.isLoaded){
return(
<View>
<Text>Loaded! </Text>
</View>
)
}else{
return(
<View>
<Text>Loading... </Text>
</View>
)
}
}
}
在我的Amazon Linux2中找不到。
yum
接下来,我尝试使用amazon-linux-extras。
但是也没有找到amazon-linux-extras。
[root@*** ~]# yum install -y docker
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
No package docker available.
Error: Nothing to do
如何安装amazon-linux-extras或创建docker映像?
答案 0 :(得分:4)
很抱歉,这是我的误会。 我的操作系统是Redhat Linux。 我可以通过
安装dockeryum-config-manager --enable rhui-REGION-rhel-server-extras
yum -y install docker
systemctl start docker
docker version
答案 1 :(得分:2)
sudo yum update -y
sudo yum -y install docker
sudo service docker start
ec2-user
用户身份访问Docker命令sudo usermod -a -G docker ec2-user
sudo chmod 666 /var/run/docker.sock
docker version
答案 2 :(得分:1)
确保已安装amazon-linux-extras
[root@ip-20-0-0-112 ~]# which amazon-linux-extras
/usr/bin/amazon-linux-extras
如果未使用yum安装amazon-linux-extras
yum -y install amazon-linux-extras
然后使用
安装dockeramazon-linux-extras install docker
答案 3 :(得分:1)
我在Amazon Linux(RHEL 7.2 )上-ami-035b3c7efe6d061d5
,
cat /proc/version
Linux version 4.14.123-86.109.amzn1.x86_64 (mockbuild@koji-pdx-corp-builder-64004) (gcc version 7.2.1 20170915 (Red Hat 7.2.1-2) (GCC)) #1 SMP Mon Jun 10 19:44:53 UTC 2019
以下脚本有效,而无需安装amazon-linux-extras install
sudo yum -y install docker
sudo service docker start
sudo chmod 666 /var/run/docker.sock
我必须解决权限问题。此处也介绍了How to fix docker: Got permission denied issue
然后我可以检查容器
[ec2-user@ip-30-0-0-196 ~]$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
答案 4 :(得分:1)
对于Amazon Linux AMI,已配置对企业Linux额外软件包(EPEL)存储库的访问,但默认情况下未启用。
要安装amazon-linux-extras,请从实例内部验证与Internet的连接,然后检查实例的操作系统:
cat /etc/os-release
如果操作系统是Amazon Linux 版本2 ,请运行
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
或运行sudo yum-config-manager --enable epel
使用EPEL存储库。您现在可以安装可用的软件包...例如sudo amazon-linux-extras install docker
有关更多详细信息,请参见aws documentation。
答案 5 :(得分:1)
Amazon Linux 2 安装了 amazon-linux-extras。如果您认为您运行的 Amazon Linux 2 amazon-linux-extras 不在 ec2-user 的路径上,则您可能运行的是旧版本的 Amazon Linux。运行这个命令:
grep PRETTY_NAME /etc/os-release
它应该输出
PRETTY_NAME="Amazon Linux 2"
如果您没有看到,请返回 ec2 控制台并深入查看实例的详细信息。单击 AMI 应该会显示它对应于旧版本的 Amazon Linux。一些 AWS 设施,尤其是 CDK,目前在创建新实例时默认使用 Amazon Linux 而不是 Amazon Linux 2。